python 图片去噪的方法示例

 更新时间:2019年07月09日 11:51:24   作者:qq_41895190  
这篇文章主要介绍了python 图片去噪的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

图像可能在生成、传输或者采集过程中夹带了噪声,去噪声是图像处理中常用的手法。通常去噪声用滤波的方法,比如中值滤波、均值滤波。但是那样的算法不适合用在处理字符这样目标狭长的图像中,因为在滤波的过程中很有可能会去掉字符本身的像素。

一个采用的是去除杂点的方法来进行去噪声处理的。具体算法如下:扫描整个图像,当发现一个黑色点的时候,就考察和该黑色点间接或者直接相连接的黑色点的个数有多少,如果大于一定的值,那就说明该点不是离散点,否则就是离散点,把它去掉。在考察相连的黑色点的时候用的是递归的方法。此处,我简单的用python实现了,大家可以参考以下。

#coding=utf-8
"""
造物奇迹QQ2737499951
"""
import cv2
import numpy as np
from matplotlib import pyplot as plt
from PIL import Image,ImageEnhance,ImageFilter
 
img_name = 'test.jpg'
#去除干扰线
im = Image.open(img_name)
#图像二值化
enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(2)
im = im.convert('1')
data = im.getdata()
w,h = im.size
#im.show()
black_point = 0
for x in xrange(1,w-1):
  for y in xrange(1,h-1):
    mid_pixel = data[w*y+x] #中央像素点像素值
    if mid_pixel == 0: #找出上下左右四个方向像素点像素值
      top_pixel = data[w*(y-1)+x]
      left_pixel = data[w*y+(x-1)]
      down_pixel = data[w*(y+1)+x]
      right_pixel = data[w*y+(x+1)]
 
      #判断上下左右的黑色像素点总个数
      if top_pixel == 0:
        black_point += 1
      if left_pixel == 0:
        black_point += 1
      if down_pixel == 0:
        black_point += 1
      if right_pixel == 0:
        black_point += 1
      if black_point >= 3:
        im.putpixel((x,y),0)
      #print black_point
      black_point = 0
im.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python如何输出整数

    Python如何输出整数

    在本篇文章里小编给大家分享的是关于Python输出整数实例方法,有兴趣的朋友们可以学习下。
    2020-06-06
  • Python实现对图像加噪(高斯噪声 椒盐噪声)

    Python实现对图像加噪(高斯噪声 椒盐噪声)

    这篇文章主要介绍了展示通过Python给图像叠加不同等级的椒盐噪声和高斯噪声的代码,相应的叠加噪声的已编为对应的类,可实例化使用。感兴趣的同学可以看看
    2021-11-11
  • python3从网络摄像机解析mjpeg http流的示例

    python3从网络摄像机解析mjpeg http流的示例

    这篇文章主要介绍了python3从网络摄像机解析mjpeg http流的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • 用pip给python安装matplotlib库的详细教程

    用pip给python安装matplotlib库的详细教程

    这篇文章主要介绍了用pip给python安装matplotlib库的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • python下setuptools的安装详解及No module named setuptools的解决方法

    python下setuptools的安装详解及No module named setuptools的解决方法

    这篇文章主要给大家介绍了关于python下setuptools的安装以及No module named setuptools问题的解决方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Python字符串格式化的方法(两种)

    Python字符串格式化的方法(两种)

    这篇文章主要介绍了Python字符串格式化的方法(两种) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • flask中使用SQLAlchemy进行辅助开发的代码

    flask中使用SQLAlchemy进行辅助开发的代码

    在Web.py, Django, Flask, Tornado里,自带的ORM功能比较缺乏,推荐大家使用SQLAlchemy来辅助开发
    2013-02-02
  • Python使用matplotlib绘制三维图形示例

    Python使用matplotlib绘制三维图形示例

    这篇文章主要介绍了Python使用matplotlib绘制三维图形,结合实例形式分析了Python基于matplotlib库绘制三维图形的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-08-08
  • Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

    Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

    这篇文章主要介绍了Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n],文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python中range()与np.arange()的具体使用

    Python中range()与np.arange()的具体使用

    本文主要介绍了Python中range()与np.arange()的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论