1.图像采样
1.1图像金字塔
1.2高斯金字塔的上、下采样
//上采样--即金字塔从上向下,放大操作
pyrUp(src, upI, Size(src.cols * 2, src.rows * 2));
//下采样--金字塔从下向上,缩小操作
pyrDown(src, downI, Size(src.cols / 2, src.rows / 2));
1.3高斯不同
//高斯不同,将两站不同程度高斯模糊后的图片相减--常用于边角检测
//1.先将图片灰度化 2.分别模糊 3.相减操作 4.归一化显示(很暗的时候用)
Mat grayI, I1, I2,dogImg;
cvtColor(src, grayI, COLOR_BGR2GRAY);
GaussianBlur(grayI, I1, Size(3, 3), 0, 0);
GaussianBlur(I1, I2, Size(3, 3), 0, 0);
subtract(I1, I2, dogImg, Mat());
//因为是灰度图像相减操作,所以图像域会变为0-1很暗,所以进行归一化操作将图像区域变回0-255更亮一些
normalize(dogImg, dogImg, 255, 0, NORM_MINMAX);
imshow("Dog_I,g", dogImg);
-------------------------------------------------------------------
-------------------------------------------------------------------
-------------------------------------------------------------------
2.图像阈值切割
图像阈值介绍:
五种阈值算法:
·二值化切割:
·反向二值化:
·截断:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200702191304777.JPG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0RJQUpFWQ==,size_16,color_FFFFFF,t_70
·取零操作:
·反取零:
·对应函数参数
具体实现
//先转换图像色彩空间为8通道灰度图片,因为算法只可以处理这种图片
cvtColor(src, gray_src, COLOR_BGR2GRAY);
//调用阈值切割方法
//threshold(gray_src, dst, threshold_value, threshold_max, THRESH_BINARY);//二值化切割,超过阈值的全部变为最大值,小于的全部为0
//threshold(gray_src, dst, threshold_value, threshold_max, THRESH_BINARY_INV);//反向二值化
//threshold(gray_src, dst, threshold_value, threshold_max, THRESH_TRUNC);//截断操作,高于阈值的部分全部变成阈值大小,小于的不变
//threshold(gray_src, dst, threshold_value, threshold_max, THRESH_TOZERO);//阈值取零,低于阈值的取零,高于阈值部分不变
threshold(gray_src, dst, threshold_value, threshold_max, THRESH_TOZERO_INV);//反取零
//threshold(gray_src, dst, 0, 255, THRESH_OTSU | type_value);//根据不同算法自动取阈值,THRESH_TRIANGLE也是,5种算法从0-4对应(对应type_value),使用前可以先打印看看
imshow(output_title, dst);