OPENCV
文章平均质量分 64
天涯海阁未走远
这个作者很懒,什么都没留下…
展开
-
【VC++、OpenCV3.4】图像的加载、修改和保存
1、加载图像:cv::imreadimread将一幅图像加载为Mat对象,第一个参数表示文件名称,第二个参数表示加载图像类型,下面的图是对应的类型参数。OpenCV支持常用的格式图像文件。如果载入发生错误,可能需要下载相应的解码器。2、显示图像cv::nameWindow()和cv::imshow()nameWindow的功能是创建一个OpenCV窗口,他是由OpenCV自动创...原创 2018-10-22 10:45:19 · 1225 阅读 · 0 评论 -
【VC++、OpenCV3.4】轮廓相关
find contour寻找轮廓线是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓寻找的结果。相关参数:https://blog.csdn.net/dcrmg/article/details/51987348相关API:findContours; drawContours步骤:1、图像转灰度cvtColor2、Canny边缘提取,得到二值...原创 2018-11-01 22:36:58 · 168 阅读 · 0 评论 -
【VC++、OpenCV3.4】模板匹配
OpenCV中常见的6种匹配算法:1、计算平方的不同:越小越相关。TM_SQDIFF,TF_SQDIFF_NORMED2、计算相关性:越大越相关TF_CCORR,TF_CCORR_NORMED3、计算相关系数:越大越相关TF_CCOEFF,TF_CCOEFF_NORMED相关API:/*@param image Image where the search is runni...原创 2018-11-01 19:34:21 · 903 阅读 · 0 评论 -
【VC++、OpenCV3.4】膨胀和腐蚀以及形态学操作
相关API:1、构造结构元:/*@param shape Element shape that could be one of #MorphShapes@param ksize Size of the structuring element.@param anchor Anchor position within the element. The default value \f$...原创 2018-10-24 21:32:58 · 300 阅读 · 0 评论 -
【VC++、OpenCV3.4】图像模糊
OpenCV中Smooth和Blur是图像处理中最简单和常用的操作之一。使用该操作的原因之一就是给图像预处理时候降低噪声。噪声的相关介绍:常见噪声和滤波使用Smooth和Blur操作背后是数学的卷积计算,k和l是窗口的长和宽。通常这些卷积算子都是线性操作,所以又叫线性滤波。1、均值滤波相关API:CV_EXPORTS_W void blur( InputArray src...原创 2018-10-24 16:56:08 · 426 阅读 · 0 评论 -
【VC++、OpenCV3.4】直方图以及相关
直方图(Histogram)均衡化:是一种体改图像对比度的方法,拉伸图像灰度值范围。/*The algorithm normalizes the brightness and increases the contrast of the image.@param src Source 8-bit single channel image.@param dst Destination i...原创 2018-10-31 11:17:36 · 439 阅读 · 0 评论 -
【VC++、OpenCV3.4】绘制形状和文字
主要内容:使用cv::Point与cv::Scalar;绘制线,矩形,圆,椭圆等基本几何形状;随机生成与绘制文本。1、cv::Point,表示2D平面上的一个点x,yPoint p;p.x=10;p.y=8;等价于p=Point(10,8);cv::Scalar 表示四个元素的向量Scalar(a,b,c);//a=blue,b=green,c=red表示RGB三个通道,第四个...原创 2018-10-24 10:03:40 · 529 阅读 · 0 评论 -
【VC++、OpenCV3.4】环境配置
工作不好找啊,特别是想找个满意的工作。所以,又得捡起OpenCV,不然真的是凉凉了。话不多说:1、首先是下载opencv包。我用的是opencv-3.4.1-vc14_vc15。这部分网上资料很多,下载解压到自定义的位置就好了。这里我解压到了e盘:E:\注意:解压期间可能会有是否添加环境变量的选项。直接选上,如果没有。需要手动添加:在环境变量的path里面加上: ...原创 2018-10-21 21:13:18 · 1226 阅读 · 0 评论 -
【VC++、OpenCV3.4】自定义线性滤波——卷积操作
卷积公式:卷积的作用:模糊图像、提取边缘、图像增强(锐化)等。常见卷积核算子:Robert算子,对45度和135度的像素变化敏感。Sobel算子:分别对水平方向和数值方向的像素变化敏感拉普拉斯算子:用于边缘提取#include<opencv2/opencv.hpp>#include<iostream>#include<stri...原创 2018-10-25 22:21:49 · 453 阅读 · 1 评论 -
【VC++、OpenCV3.4】图像亮度和对比度调整
1、图像变换可以看做像素变换(点操作)和区域上的邻域操作。调整图像亮度和对比度属于像素变换-点操作。其中alpha是增益变量,另外OpenCV是基于RGB的图像操作,0-255,所以a应该是正数。注意:提高亮度和提高对比度是不一样的。亮度是关注像素值,对比度关注像素差值。2、重要的APIMat new_image=Mat::zeros(image..size(),image.t...原创 2018-10-23 16:16:47 · 1100 阅读 · 1 评论 -
【VC++、OpenCV3.4】图像混合
1、线性混合理论:两幅图像的每一个像素线性混合 其中a是0-1范围的值。f0和f1是源图像相关的API(addWeighted)用法:CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, dou...原创 2018-10-23 15:16:59 · 135 阅读 · 0 评论 -
【VC++、OpenCV3.4】阈值操作
阈值操作:threshold阈值:图像分割的标尺。最简单的就是二值化,大于阈值的像素值全部变成255,小于阈值的像素值全部设置为0.阈值操作其实有很多种类型:阈值二值化,反二值化(threshold binary Inverted)阈值截断(truncate):大于阈值的部分像素值取0,阈值范围内的部分等于原来的像素值。阈值取零(threshold to zero):大于阈值的...原创 2018-10-25 17:03:02 · 309 阅读 · 0 评论 -
【VC++、OpenCV3.4】图像金字塔-上采样和下采样
图像处理中有一种常见的操作——缩放。最常见的是放大(zoom in)和缩小(zoom out),以及图像金字塔。有时需要对两张不同尺度的图像上匹配一个物体,由于分辨率不一样,需要将图像转换到不同的尺度空间,在不同的尺度空间中寻找特征,在进行后续处理。一次,不同尺度空间的图像金字塔式很有用的。图像金字塔包括:高斯金字塔——用来对图像进行降采样。拉普拉斯金字塔——根据他的上层降采样图片...原创 2018-10-25 14:49:06 · 854 阅读 · 0 评论 -
【VC++、OpenCV3.4】提取水平和垂直线
很多实际的项目中都会遇到线的提取。比如航拍图片中的电缆线提取,道路交通中的标记线提取(自动驾驶会用到),航母上飞机跑道线的提取等。非常实用也非常重要原理方法:图像形态学操作的时候,可以通过自定义的结构元素实现结构元素对输入图像的一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的心态学操作——膨胀和腐蚀,使用不同的结构元素对输入图像的操作、...原创 2018-10-25 10:18:38 · 480 阅读 · 0 评论 -
【VC++、OpenCV3.4】图像取反操作
相较于指针,有更简单的方式获取像素。指针不适合新手下面介绍处理多通道图像的像素值:这里发现一个很蛋疼的问题:我这个vs2017+OpenCV3.4.1的环境,当鼠标移动到Mat上的时候就会卡死,动不了了,一开始我还以为是电脑的原因。一百度发现好多人都有这个问题。找到解决方案:在Mat的源文件中,将Mat和注释之间加上一个空行,之后就没有这个问题了。——只想说,这个问题让我曾经一度十分崩溃!...原创 2018-10-22 20:42:49 · 2676 阅读 · 0 评论 -
【VC++、OpenCV3.4】Mat对象
这节记录下图像加载或者读取后的内存对象Mat的相关知识。包括:Mat对象和IplImage对象,Mat对象的使用,Mat定义数组。1、Mat对象和IplImage对象:IplImage对象:是从2001年OpenCV发布就一直存在的,是C语言风格的数据结构,需要开发者自己分配和管理内存,对大的程序来说,使用IplImage对象容易造成内存泄漏的问题。Mat对象:OpenCV2.0以...原创 2018-10-22 16:36:04 · 466 阅读 · 0 评论 -
【VC++、OpenCV3.4】矩阵掩模mask
这一节主要讲图像在像素级上的操作:掩模。包括获取图像的像素指针,掩模的解释。1、获取图像像素的指针Mat.pt得到Mat对象之后可以由对象获取对象的指针。Mat.ptr<uchar>(int i=0)获取像素矩阵的指针,索引i表示第几行,从0开始计数。获得当前行的指针:const uchar* current=myimage.ptr<uchar>(row);...原创 2018-10-22 14:03:57 · 792 阅读 · 0 评论 -
python+opencv连通域测试
SimpleBlobDetector原理:网址SimpleBlobDetector又是出现区域标记不到的情况。。从原理上分析:斑点越趋近于圆,标记的效果越好。。有时候看似可以被标记中的区域没有被选中,不是应该调节圆度。。。而是应当调节突出程度。。params.minConvexity参数。。。。默认参数值好像是接近0.95.。。所以一些看起来觉得圆的连通域出现了标记不到的错误。具体尴...原创 2019-07-12 16:31:38 · 4237 阅读 · 1 评论