python 圖片去噪的方法示例
圖像可能在生成、傳輸或者采集過程中夾帶了噪聲,去噪聲是圖像處理中常用的手法。通常去噪聲用濾波的方法,比如中值濾波、均值濾波。但是那樣的算法不適合用在處理字符這樣目標狹長的圖像中,因為在濾波的過程中很有可能會去掉字符本身的像素。
一個采用的是去除雜點的方法來進行去噪聲處理的。具體算法如下:掃描整個圖像,當發(fā)現(xiàn)一個黑色點的時候,就考察和該黑色點間接或者直接相連接的黑色點的個數(shù)有多少,如果大于一定的值,那就說明該點不是離散點,否則就是離散點,把它去掉。在考察相連的黑色點的時候用的是遞歸的方法。此處,我簡單的用python實現(xiàn)了,大家可以參考以下。
#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)]
#判斷上下左右的黑色像素點總個數(shù)
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()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進行數(shù)據(jù)分析圖文詳解
這篇文章主要介紹了PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進行數(shù)據(jù)分析圖文詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
舉例講解Python設(shè)計模式編程中對抽象工廠模式的運用
這篇文章主要介紹了Python設(shè)計模式編程中對抽象工廠模式的運用,文中的例子體現(xiàn)了抽象工廠模式程序的一些設(shè)計優(yōu)化點,需要的朋友可以參考下2016-03-03

