一、图像基础
在计算机眼中图片是由像素点构成的,像素点可以看成是一个值,图片可以看成是一个像素矩阵,分析图片的本质就是在分析这个矩阵。【w,h,3】即为【宽,高,RGB】
像素点的值的区间是0-255,代表的是亮度,0为黑色,255为最亮。多数情况看到的彩色图片,都是RGB颜色通道的,只有彩色图有三个通道,黑白电影那种黑白灰的是只有一个通道的。
ROI全称为region of interest感兴趣的区域,做图片或视频监测时经常用ROI先进行区域分割再对区域内进行精准识别,可以固定区域切割,但是一般会先进行边缘、颜色、形态学(开运算/闭运算/礼貌/黑帽等)、纹理分析、梯度分析等。
边界填充,边界填充的方法:复制法、反射(对称)法、外包装法、常量法
二、形态学
形态学腐蚀操作,在图片的一些边缘位置,在以卷积核为单位的区域,会将图片边缘腐蚀掉;膨胀操作反之,在图片边缘位置,以卷积核为单位的区域将图片边缘膨胀;如果先腐蚀后膨胀,这样会将图片中细小的部分去除/缩小,并把图片中的主体还原/放大,这个就是开运算;闭运算则是先膨胀再腐蚀。梯度运算,梯度=膨胀后的图片-腐蚀后的图片。
礼貌和黑帽,礼貌=原始输入-开运算结果,会显示图片中被腐蚀但是未被膨胀回来的部分,黑帽=闭运算-原始输入,得到的是图片的边缘地带。
三、图像梯度
Sobel算子,是在卷积核内(算子大小)对图片进行水平和垂直
的梯度处理,实际上也是对图片的边缘进行处理,
=右边的像素点-左边的像素点,
=下面的像素点-上面的像素点,因为是减法所以会取到负数,但是像素点区间是0-255,所以会进行截断操作,小于0的都取为0。计算后会得到一个图片中边缘的轮廓。
scharr算子,在sobel算子的基础上放大数值,会放大梯度运算结果,同时会对图片中的一些细小的东西如噪声点处理的更明显。
laplacian算子,在算子内,用中间像素点和边缘点进行比较,不是像上述两个算子一样单纯的水平和垂直计算,结果会更加模糊。
四、Opencv图像阈值
result = cv2.threshold(src,thresh,maxval,type)
cv2.THRESH_BINARY,超过阈值取设定的max,低于阈值取0
cv2.THRESH_BINARY_INV,反之
cv2.THRESH_TRUNC 大于阈值设为阈值
cv2.THRESH_TOZERO 小于阈值为0
cv2.THRESH_TOZERO_INV 大于阈值为0