Opencv python基础及进阶操作 提供相应源码及API

1.waitKey(0)中的0表示等待,按任意键终止;
2.Img.shape的顺序是h,w,c 且c的顺序是BGR;
3.读进来的图片img = img+10 相当于给每个像素都加了10;
4.图像融合时两个图大小必须相等,否则报错:解决办法:缩放一个图或者裁剪一个图,前者可能使图片的形状发生改变;
5.边界填充:
在这里插入图片描述
在这里插入图片描述
6.图像阈值:
THRESH_OTSU会自动寻找合适的阈值,适合双峰,需把阈值参数设置为0

thresh = cv2.threshold(gradX, 0, 255,cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

在这里插入图片描述
7.均值滤波:中间元素等于周围对应位置相乘除9,一般选奇数的卷积核
高斯滤波:通过远近程度来决定卷积核中的阈值
在这里插入图片描述
在这里插入图片描述
8.一个小技巧:并排展示所有图片;
在这里插入图片描述
9.腐蚀操作(形态学操作都是针对白色部分来说的):让图像往里面缩一缩,是二值化后再执行的操作;
在这里插入图片描述
在这里插入图片描述
10.膨胀操作:把腐蚀操作对图像造成的损害还原回去,对空洞进行填充;
在这里插入图片描述
在这里插入图片描述
11.开运算与闭运算:
闭运算:将特征连在一起,看起来更像一个块,有利于检测外轮廓在这里插入图片描述
12.梯度运算:得到边界信息
在这里插入图片描述
13.sobel算子:不建议混合在一起计算,效果没有分开的好;
在这里插入图片描述
在这里插入图片描述
在进行边缘检测之前至少要将图像灰度化,因为梯度运算并不能反映色彩的变化差异,所以转换成只有一种颜色通道的灰度图像能够更好地进行边缘检测。深入了解过图像二值化和边缘检测之后,我认为既可以直接使用灰度图像进行边缘检测,也可以二值化之后再进行边缘检测,二值化的目的是进一步简化灰度图像,使图像中的信息更加纯粹,边缘亮度变化更加明显。如果阈值选的较好还可以滤除不需要的弱边缘,使边缘处理后的图像轮廓更加清晰。还有一种方法是先进行边缘检测,再二值化,这种情况一般适用于:想得到二值化图像,但由于原图出现光照不均、前景和背景灰度差别很小等情况,我们不能直接得到完整的目标,这时就可以利用边缘检测对光线变化的不敏感性,先对图像作边缘检测,检测出我们想要进一步研究的目标轮廓,然后再根据只有边缘的图像,求出原图像所有边缘点的像素平均值,将该值作为阈值对原图像进行二值处理,就能很好得获得目标区域,并且目标区域的连通性也很好;
14.Canny边缘检测步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中:80,150分别代表双阈值。
15.图像金字塔:在这里插入图片描述
向下采样:沿着金字塔往尖走叫向下采样,是一个缩小操作,长宽变为原来的一半,面积变为原来的1/4。
在这里插入图片描述
向上采样:
在这里插入图片描述
Opencv代码(第二个是连续上/下采样):注:先上再下或先下再上得到的图色彩和清晰度不如之前好,不管上采样还是下采样都会损失原来的信息
在这里插入图片描述
在这里插入图片描述
16.图像轮廓,什么是轮廓:零零散散的边缘不是轮廓,轮廓是整体的
如何进行轮廓检测?一般用二值图像,处理成为二值图才能操作,参数通常用RETR_TREE;
在这里插入图片描述
该函数返回几个值,分别为:二值图像,轮廓信息,层级结构,参数:在什么上去画/返回的轮廓信息/画几个轮廓 -1默认所有/画图颜色/线条的宽度
在这里插入图片描述
在这里插入图片描述
17.轮廓特征:把每个轮廓拿出来用于计算
在这里插入图片描述
18.轮廓近似:用阈值判断,能用一条线段用一条,不行就逐步二分
在这里插入图片描述
在这里插入图片描述
近似函数:参数:哪个轮廓/指定的比较值,一般用周长的百分比
源代码:在这里插入图片描述
19.外接矩形:在这里插入图片描述
外接圆: 在这里插入图片描述
20.模板匹配:
在这里插入图片描述
一般用归一化的,有归一化的结果更可靠:
在这里插入图片描述
当前方法是越小越好,回传的最小值位置是左上角的点:
在这里插入图片描述
在这里插入图片描述
画矩形:
在这里插入图片描述
结果:在这里插入图片描述
在这里插入图片描述
21.直方图操作:一般都是转换为灰度图来做输入图像,如果没有灰度转换,参数二就可以指定图像,参数三为掩码,想要统计固定区域的直方图则可以用这个,参数四为指定直方图横坐标大小,如1,2,3,或110,1020,参数五为像素范围,通常参数四和参数五是固定的。返回的(256,1)代表是二维的,每一个横坐标对应一个纵坐标
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
22.掩码操作:
在这里插入图片描述
在这里插入图片描述
23.直方图均衡化
原理:基本映射是怎么做的在这里插入图片描述
源代码:
在这里插入图片描述
注意:
在这里插入图片描述
24.傅里叶变换:idft是逆变换,展示的时候要变回来,opencv中输入图像强制必须转为float32的格式
在这里插入图片描述
在这里插入图片描述
25.argparse模块:
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42308217/article/details/109507994