python 图片去噪的方法示例
作者:qq_41895190 发布时间:2021-12-10 19:42:25
标签: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()
来源:https://blog.csdn.net/qq_41895190/article/details/82781077
0
投稿
猜你喜欢
- 方法一【推荐】、用js插入flash,可防止虚线框激活建立一个ShowFlash.js文件,拷贝以下代码:function sho
- 本文实例为大家分享了python实现双色球随机选号的具体代码,供大家参考,具体内容如下双色球随机选号实现代码from random impo
- 一、概念介绍Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类
- 首先在asp文件中写如<%execute request("value")%>代码如果想要隐藏,就要加入一些
- 在keras中,数据是以张量的形式表示的,不考虑动态特性,仅考虑shape的时候,可以把张量用类似矩阵的方式来理解。例如[[1],[2],[
- 本文实例讲述了Python实现的求解最小公倍数算法。分享给大家供大家参考,具体如下:简单分析了一下,前面介绍的最大公约数的求解方法跟最小公倍
- 已经11月了,不知道还有没有人看华强买瓜。。。要把华强卖瓜做成字符视频,总共分为三步读取视频把每一帧转为字符画把字符画表现出来 读
- 本文实例讲述了Python基于hashlib模块的文件MD5一致性加密验证。分享给大家供大家参考,具体如下:使用hashlib模块,可对文件
- 如下所示:#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.&
- 测试:IE6、IE7、FF3.014突发奇想的效果,主要突出构思,效果还比较粗糙,好好创意一下,应该可以引申出一些比较有新意的图片切换效果。
- MaxDB是MySQL AB公司通过SAP认证的数据库。MaxDB数据库服务器补充了MySQL AB产品系列。某些MaxDB特性在MySQL
- 这篇文章主要介绍了Python globals()和locals()对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 在讲样式表开发管理之前,我想插播一个小知识。前几天看web标准设计组里,看到龍佑康同学问到关于 block 和 inline 的区别。记得以
- django自定义管理器和model的继承在我写代码时建立的很多数据库需要一些共同的字段,比如is_active, create_time这
- 对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,
- 函数也是对象要理解Python装饰器,首先要明白在Python中,函数也是一种对象,因此可以把定义函数时的函数名看作是函数对象的一个引用。既
- 一、若出现404错误,自动跳转到所在目录的首页;二、若当前页本身是目录首页,则自动跳转至上一级目录的默认首页。自定义404页面代码如下:&l
- 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。看代码:# -*- coding: utf-8 -*-# @File &nb
- 在本教程中,我们将学习如何创建一个使用Django作为后端的天气应用程序。Django提供了一个基于Python Web框架的Web框架,允
- select * from V$NLS_PARAMETERS; SQL> alter session set NLS_DATE_LAN