受光照、气候、成像设备等因素的影响,灰度化后的图像存在噪声和模糊干扰,直接影响到下一步的文字识别,因此,需要对图像进行增强处理。图片预处理中重要一环就是椒盐去澡,通常用到中值滤波器进行处理,效果很好。中值滤波器是一种非线性滤波器,其基本原理是把数字图像中某点的值用其领域各点值的中值代替。
在振兴等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站设计 网站设计制作按需网站策划,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,成都外贸网站建设公司,振兴网站建设费用合理。如求点[i,j]的灰度值计算方法为:
(1)按灰度值顺序排列[i,j]领域中的像素点;
(2)取排序像素集的中间值作为[i,j]的灰度值。中值滤波技术能有效抑制噪声。
直接上代码,希望给大家有帮助:
import numpy as np import cv2 import tensorflow as tf from PIL import Image import os import scipy.signal as signal input_images = np.zeros((300, 300)) filename = "D:\字母图库\F\P80627-112853.jpg" print(filename) img = Image.open(filename).resize((300, 300)).convert('L') width = img.size[0] height = img.size[1] for h in range(0, height): for w in range(0, width): if img.getpixel((h, w)) < 128: input_images[w, h] = 0 else: input_images[w, h] = 1 cv2.imshow("test1111", input_images) data = signal.medfilt2d(np.array(img), kernel_size=3) # 二维中值滤波 for h in range(0, height): for w in range(0, width): if data[h][w] < 128: input_images[w, h] = 0 else: input_images[w, h] = 1 cv2.imshow("test2222", input_images) data = signal.medfilt2d(np.array(img), kernel_size=5) # 二维中值滤波 for h in range(0, height): for w in range(0, width): if data[h][w] < 128: input_images[w, h] = 0 else: input_images[w, h] = 1 cv2.imshow("test3333", input_images) cv2.waitKey(0)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。