阿里国际网站首页可以做全屏不,深入解析wordpress 原书第2版 pdf 下载,设计素材网站图片,网页制作素材库属不属于信息管理1.目的
在学校的学习过程中#xff0c;需要递交许多材料#xff0c;且每份材料上都需要对应负责人签名#xff0c;有时候找别人要签名#xff0c;然后自己粘贴的话#xff0c;会出现签名模糊#xff0c;背景不是纯白透明。为此以word中的“颜色校正”功能为参照#xf…1.目的
在学校的学习过程中需要递交许多材料且每份材料上都需要对应负责人签名有时候找别人要签名然后自己粘贴的话会出现签名模糊背景不是纯白透明。为此以word中的“颜色校正”功能为参照进行OpenCV代码实现。
举例
手写的一个签名 图像会有阴影且字体模糊 2. 解决思路
首先通过算法来完成前景与背景的分离再使用形态学方法来恢复图像清晰度。
使用canny边缘检测来获取图像中字迹的轮廓使用形态学方法来恢复图像清晰度使用颜色反转来获得白底黑字的签名
代码
import cv2# 读取图像
image cv2.imread(rD:\papercode\AI\Ai-Dentist-Sample-Code-main\opencv\image\02.jpg)width image.shape[1] // 2
height image.shape[0] // 2
image cv2.resize(image,(width, height),interpolation cv2.INTER_AREA )
# cv2.imshow(a,image)
# 将图像转换为灰度
gray_image cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# cv2.imshow(gray,gray_image)edges cv2.Canny(gray_image, 100, 200)
# cv2.imshow(canny,edges)
# 创建一个结构元素通常使用一个圆形的结构元素
kernel cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))# 应用膨胀操作
edges cv2.dilate(edges, kernel, iterations1)
# cv2.imshow(canny1,edges)
#尝试腐蚀来断偏旁部首的粘连
# kernel cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))
# edges cv2.erode(edges, kernel, iterations1)
# cv2.imshow(canny02,edges)
kernel1 cv2.getStructuringElement(cv2.MORPH_RECT, (4, 4))
closing cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel1)
# cv2.imshow(canny2,closing)
# # 应用高斯模糊
# blurred_image cv2.GaussianBlur(closing, (5, 5), 0)
# cv2.imshow(blurred_image,blurred_image)
# # 应用 Laplacian 锐化
# sharpened_image cv2.Laplacian(closing, cv2.CV_64F)
# cv2.imshow(l,sharpened_image)
# 应用中值滤波
# smoothed_image cv2.medianBlur(blurred_image, 5)
# cv2.imshow(se,smoothed_image)background cv2.bitwise_not(closing)# 显示结果
cv2.imshow(Background, background)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.1 canny边缘检测
edges cv2.Canny(gray_image, 100, 200)
参数分别为输入图像最小阈值和最大阈值 结果如下自己轮廓提取的效果还是不错的。因为OpenCV中一般白色为前景所以需要将白色轮廓进行填充需要用到形态学方法 2.2 膨胀操作
edges cv2.dilate(edges, kernel, iterations1) 可以看到字迹有一定的填充担任存在一些小的空洞这个就需要用到闭运算了来消除白色区域中的小黑块 2.3 闭运算
closing cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel1) 可以看到几乎多有的小黑块都被填充完毕但是出现意料外的情况。在“图”字中外面的口和里面的冬连在了一起因为本身原图片中这两个结构就挨得很近且为了最大限度地填充小黑块进行膨胀时就容易粘连在一起了。 2.4 颜色反转
background cv2.bitwise_not(closing) 为了得到白底黑字的效果还需要进行颜色反转效果如下图。由于形态学变换中的核取值过大字迹出现了毛刺且笔画不流畅。 3. 不足与尝试
代码中有使用高斯滤波和中值滤波来尝试去除毛刺。但是高斯滤波后笔画流畅了字迹却又模糊了且中值滤波效果不大。
高斯滤波结果 中值滤波结果 双边滤波结果