python 中值滤波,椒盐去噪,图片增强实例

yipeiwu_com7年前Python基础

受光照、气候、成像设备等因素的影响,灰度化后的图像存在噪声和模糊干扰,直接影响到下一步的文字识别,因此,需要对图像进行增强处理。图片预处理中重要一环就是椒盐去澡,通常用到中值滤波器进行处理,效果很好。中值滤波器是一种非线性滤波器,其基本原理是把数字图像中某点的值用其领域各点值的中值代替。

如求点[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)

以上这篇python 中值滤波,椒盐去噪,图片增强实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python读取文本中的坐标方法

利用python读取文本文件很方便,用到了string模块,下面用一个小例子演示读取文本中的坐标信息。 import string x , y , z = [] , [] ,[]...

python 接收处理外带的参数方法

在执行python 代码的时候,有时候需要传递外面的参数进行处理 这个该怎么实现呢? 需要一个模块 from sys import argv 当然也可以直接只导入 sys im...

基于Python实现的微信好友数据分析

基于Python实现的微信好友数据分析

最近微信迎来了一次重要的更新,允许用户对”发现”页面进行定制。不知道从什么时候开始,微信朋友圈变得越来越复杂,当越来越多的人选择”仅展示最近三天的朋友圈”,大概连微信官方都是一脸的无可奈...

python使用PyGame绘制图像并保存为图片文件的方法

本文实例讲述了python使用PyGame绘制图像并保存为图片文件的方法。分享给大家供大家参考。具体实现方法如下: ''' pg_draw_circle_save101.py dra...

python实现周期方波信号频谱图

python实现周期方波信号频谱图

在学习傅里叶变换的时候遇到了求周期方波信号频谱图的例子,在书上和网上查阅了一些资料,发现大都是讨论的都是下图左边的周期信号的频谱,课程老师的PPT中也只列出了另一种周期信号频谱图的结论,...