随笔分类 - OpenCV
摘要:在x86_64平台上编译得到两个版本的opencv:x86_64和arm64 方式与此博客一样编译OpenCV——jetson嵌入式平台 - 夕西行 - 博客园,区别只有如下几个地方 1、编译x86_64版本时 最终放到/opt/opencv目录里 2、编译arm64版本时 最终放到/opt/ope
阅读全文
摘要:arm64上编译opencv得到opencv_world.so,放到x86_64平台,用CLion交叉编译arm64的程序时会报一堆的缺少依赖的so文件。 /usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin
阅读全文
摘要:1、只有1个版本的OpenCV时,使用自动搜索方式 以项目TestOnnx为例,一般如下即可: find_package(OpenCV REQUIRED) #会自动搜寻OpenCVConfig.cmake文件,一般位于/usr/local/lib/cmake/opencv4 include_dire
阅读全文
摘要:[全局]std::vector存储[局部作用域]的基本数据类型:在push_back的时候,会将局部数据的值拷贝到vector的指定的内存区域,之后局部数据在生命周期结束后释放。【参考】(9条消息) 关于全局std::vector和局部变量存储的总结_局部变量vector_疯花正猫的博客-CSDN博
阅读全文
摘要:类似Halcon的 selectRegion,虽然没有Halcon强大,但有胜于无。下方参数image为二值图(注意目标为白色,黑色为背景) 函数返回区域个数,黑色背景也算一个。 有3个输出参数: labels对应的是每个区域,可以用索引获取区域。 stats包含了每个区域的最小外接矩形和区域面积。
阅读全文
摘要:windows系统 Qt的pro文件: win32:{ Debug:{ #opencv INCLUDEPATH += C:/OpenCV_CUDA/include \ C:/OpenCV_CUDA/include/opencv2 LIBS += -LC:/OpenCV_CUDA/x64/vc16/l
阅读全文
摘要:以此教程为主: OpenCV cuda 版本编译使用 - 哔哩哔哩 (bilibili.com) 勾选与不勾选的全按此博客,其中CUDA_ARCH_BIN 6.0以下版本删除,否则编译过程会提醒旧版本已删除。 以此为辅: CMake编译OpenCV - 夕西行 - 博客园 (cnblogs.com)
阅读全文
摘要:以编译opencv4.5.5为例。 这些文件其实最终会下载到“……\opencv-4.5.5\.cache”里 里边的文件都以(MD5码-原名)方式命名,如下图 带MD5码的全名可以从你指定生成build的目录中CMakeDownloadLog.txt里查看,下载失败的都会以https开头(在里边搜
阅读全文
摘要:官方有两个算子,HoughLines和HoughLinesP HoughLines得到两个变量:θ、ρ 在旋转矫正时,使用的是angle。具体见下图。 θ 弧度制,[0,π)angle 角度制,[-90°,90°),正值则逆时针旋转下图中的angle是负值(需顺时针选择),angle=θ*180/π
阅读全文
摘要:比对了下QZXing库,还是zbar强大点。这两个都可以识别0、90、180、270、360角度的条形码。zbar可以识别多个条形码。而且获取条码类型。 1、下载安装zbar,选择full全部安装。也可以从这里下载。 2、由于官方给的是32位的,继续下载64位的zbar 替换文件: 将ZBarWin
阅读全文
摘要:VS中与OpenCV有关的插件: Image Watch,“视图”——>”其他窗口”——>”Image watch”,需加断点才能看到Mat变量对应的图 参考https://blog.csdn.net/nnnnnnnnnnnny/article/details/52260370
阅读全文
摘要:1、下载安装python,勾选添加到环境,选择自定义安装,选择路径,其他默认。安装完成后,pip也安装完毕(包含在python中)。下图查看版本,有版本号则安装成功 2、更换源,win+R 输入%HOMEPATH%,在此目录下创建 pip 文件夹,其内创建 pip.ini 文件,粘贴如下内容: [g
阅读全文
摘要:trainAuto()函数中,使用了K折交叉验证来优化参数,会自动寻找最优参数。 两种用法:标黄的等效 virtual bool trainAuto( const Ptr<TrainData>& data, int kFold = 10,ParamGrid Cgrid = getDefaultGri
阅读全文
摘要:如何使用,请查阅我的另两篇博客——SVM的使用train(),SVM的使用trainAuto(),K折交叉验证优化参数 核(由上到下):线性、多项式、径向基函数、Sigmoid、指数卡方分布、直方图交运算 使用方式:参数范围可以参考上边的链接 //SVM类型及参数 svm->setType(SVM:
阅读全文
摘要:依据机器学习算法如何学习数据可分为3类: 有监督学习:从有标签的数据学习,得到模型参数,对测试数据正确分类; 无监督学习:没有标签,计算机自己寻找输入数据可能的模型; 强化学习(reinforcement learning):计算机与动态环境交互,学习错误反馈达到更优的目的。 依据机器学习期望结果来
阅读全文
摘要:注意:数据结构的一致性,在高维度数据一般使用rbf核函数,使用网格搜索思想迭代求出gamma和c。 每行为一个样本,数据类型都围绕标黄代码而定义的。 SVM训练如下坐标(左边一列为A类,右边为B类),然后预测给出的坐标属于哪一类。 #include<opencv2\opencv.hpp> #incl
阅读全文
摘要:Vec是类,OpenCV中的向量模板类,具体有Vec2b,Vec3b,Vec2s,Vec3s等。 以Vec3b、Vec3s为例,其实是给Vec类起了一个别名。 typedef Vec<uchar,3> Vec3b; //Vec3b就是有3个uchar类型元素的向量。 typedef Vec<shor
阅读全文
摘要:一般使用的灰度图像元素是8位的uchar型(注意不是无符号整型,而是无符号字符型。元素值0~255),自定义Mat矩阵时,推荐使用8位无符号字符型,即CV_8U、CV_8UC3。 再说一遍,条件反射式的记住:一般见到的Mat的元素是8位无符号字符型,不是8位无符号整型。 【元素类型】 CV_8U(即
阅读全文
摘要:注意: Mat a(行, 列, CV_8U); //CV_8U默认205 Mat a(Size(宽, 高), CV_8U); 创建与已有img等大小的矩阵:将下列代码中的2,2都可以换成img.size(), img单通道对应CV_8U,三通道对应CV_8UC3。一般使用8位就可以。16、32不推荐
阅读全文
摘要:void glob(cv::String pattern, std::vector<cv::String>& result, bool recursive = false); 注意String是cv空间下的,不是std。glob遍历图像名称不是按顺序进行遍历的,1 10 11……19 20 21……
阅读全文