
opencv学习笔记
记录学习
Hardworkqiu
这个作者很懒,什么都没留下…
展开
-
opencv卷积边界处理
卷积边界问题 对图像进行卷积操作的时候,图像的边界像素没有与设定的kernel完全重叠,所以边界像素不会进行卷积操作,例如当33滤波的时候有1个像素的边缘没有被处理,55滤波的时候有2个像素的边缘没有被处理。 处理方法 在卷积开始操作之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3*3在四周各填充一个像素的边缘,这样就确保图像的边缘被处理,卷积处理之后再去掉这些边缘。处理方法有以下几种:...原创 2020-04-24 12:22:56 · 657 阅读 · 0 评论 -
opencv 自定义线性滤波
卷积概念 卷积是图像处理的一个操作,是依据kernel对图像每个像素点进行操作,kernel本质上是一个固定大小的矩阵数组,其中心为锚点。把kernel放在像素的数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用其来替换锚点下的像素值。称之为卷积操作。公式如图所示。 依次对图像进行该操作。 常见算子有Robert算子、Sobel算子、拉普拉斯算子。 自定义算子 ) 代码效果是图像线性模糊...原创 2020-04-20 23:53:26 · 156 阅读 · 0 评论 -
opencv基本阈值操作
阈值是分割图像的标尺,该阈值可以自己设定也可以让系统自动生成。阈值有五种类型,THRESH_BINARY是阈值二值化,THRESH_BINARY_INV阈值反二值化,THRESH_TRUNC阈值截断,THRESH_TOZERO阈值取零,THRESH_TOZERO_INV阈值反取零,THRESH_OTSU和THRESH_TRIANGLE系统自动设置阈值。如下图所示。 代码 #include <...原创 2020-04-20 23:23:08 · 469 阅读 · 0 评论 -
opencv 膨胀与腐蚀
膨胀与腐蚀 膨胀:假设有图像A和结构元素B,结构元素B在图像A上移动,假设结构元素B的中心点为锚点,在结构元素B下的图像A中最大的像素值替换锚点,其中B作为结构体,可以是任意形状,矩形,圆形,椭圆等等。 腐蚀:假设有图像A和结构元素B,结构元素B在图像A上移动,假设结构元素B的中心点为锚点,在结构元素B下的图像A中最小的像素值替换锚点,其中B作为结构体,可以是任意形状,矩形,圆形,椭圆等等。 ge...原创 2020-04-19 00:22:46 · 4628 阅读 · 1 评论 -
01 opencv C++学习加载、修改、显示、保存图像
opencv C++学习 加载、修改、显示、保存图像 加载图像 imread的功能是从电脑某个路径加载图像,然后定义其为Mat对象。 修改图像 cvtcolor的功能是把一个彩色空间转换到另外一个彩色空间,其包含三个参数,第一个参数表示原图像,第二个参数表示转换完成后生成的图像,第三个参数表示转换方式定义。例如 cvtColor(src, output, CV_BGR2GRAY); 显示图像 n...原创 2020-04-16 11:51:25 · 475 阅读 · 0 评论 -
02 opencv矩阵的掩膜操作
获取图像像素指针 Mat.ptr(int i=0)获取像素矩阵的指针,索引i表示第几行。 获得当前行指针const uchar* current=myImage.ptr(row); 获取当前像素点P(row,col)的像素值p(row,col)=current[col]. 像素范围处理 saturate_cast 像素值大于255则设定为255,像素值小于0则设定为0,像素值在0-255之间则数值...原创 2020-04-18 13:19:14 · 180 阅读 · 0 评论