python 圖片去噪的方法示例
更新時間:2019年07月09日 11:51:24 作者:qq_41895190
這篇文章主要介紹了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()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
PyCharm設置Ipython交互環(huán)境和宏快捷鍵進行數(shù)據分析圖文詳解
這篇文章主要介紹了PyCharm設置Ipython交互環(huán)境和宏快捷鍵進行數(shù)據分析圖文詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04