最近终于完结了图像处理的课程,打算利用几篇文章总结一下几个简单的模型和应用。首先第一篇也就是这篇总要是展示一下利用opencv用五行代码实现将图像转化为素描图,效果如下,第一张是原图,第二张是转换后的素描效果图:
整个过程如下(如果没有安装opencv,先用pip安装对应模块
pip install opencv-python)
首先是导入模块,读入图片:
import cv2img = cv2.imread(pic_dir)
利用cvtColor将图片转化为灰度图
gray =cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
再用高斯滤波函数进行模糊化处理,去噪(高斯滤波是一种线性平滑滤波,适用于消除高斯噪声)
gauss = cv2.GaussianBlur(gray, (7,7), 0)
然后利用canny算子进行边缘检测,检测出图片的大致轮廓
canny = cv2.Canny(gauss, 50, 150)
逆二元阈值化处理,像素值大于100的转化0,小于100的转化255
ret,result = cv2.threshold(canny, 100, 255, cv2.THRESH_BINARY_INV)
调用imshow函数读出图片
cv2.imshow("result", result) cv2.waitKey(0)
成功只需要五六行代码就可以实现转化