练习内容为:
1. 对于图像进行均值滤波和中值滤波;
2. 对于图像的第二个波段,进行灰度图自适应均衡化,输出为单波段影像;
3. 对于图像的第三个波段进行阈值处理和自适应阈值处理,输出为单波段影像;
4. 对于图像先进行二值化,再进行两种形态学处理。开运算:表示的是先进行腐蚀,再进行膨胀操作;闭运算:表示先进行膨胀操作,再进行腐蚀操作;输出均为单波段影像;
5. 对于图像进行90°、270°翻转,镜像翻转,垂直翻转。
6. 对于图像进行傅里叶变换,将图像时域转换成频域;
7. 对于图像进行傅里叶逆变换,将图像频域变成时域;
练习数据自行选择一张图片。
以上练习的内容均比较基础,此次的练习难度较小,可以用来加深对于图像视觉基础内容的了解。下面为练习基础知识和代码演示。
1. 对于图像进行均值滤波和中值滤波
参考文章Python+OpenCV图像处理:均值滤波、中值滤波、高斯滤波以及图像堆叠显示_nicec1的博客-优快云博客
中值滤波是一种非线性的信号处理方法,所以它是一种非线性滤波器,也是一种统计排序滤波器。它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
实现代码如下:
import cv2
# 导入图像
image = cv2.imread('【图片路径】')
# 图像显示
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 均值滤波
blur = cv2.blur(image, (3, 3))
# 保存均值滤波结果
cv2.imwrite('【保存路径】' + 'blur.jpg', blur)
# 中值滤波
median = cv2.medianBlur(image, 5)
# 保存
cv2.imwrite('【保存路径】' + 'median.jpg', median)
中值滤波结果
均值滤波结果
2. 对于图像的第二个波段,进行灰度图自适应均衡化,输出为单波段影像
此题说明要将图像的第二波段进行实验,故要先提取出图像的RGB通道的灰度图,此处用split函数,具体参考【数字图像处理实验二】:RGB图3个通道的提取