導航:首頁 > 編程語言 > python圖像加雜訊

python圖像加雜訊

發布時間:2022-09-09 21:44:24

python 能不能生成拉普拉斯雜訊

可以。
拉普拉斯是一種二階導數運算元,是一個與方向無關的各向同性(旋轉軸對稱)邊緣檢測運算元。若只關心邊緣點的位置而不顧其周圍的實際灰度差時,一般選擇該運算元進行檢測。
拉普拉斯運算元為二階差分,其方向信息丟失,常產生雙像素,對雜訊有雙倍加強作用,因此它很少直接用於邊緣檢測。

㈡ 如何用python實現圖像的一維高斯濾波器

如何用python實現圖像的一維高斯濾波器
現在把卷積模板中的值換一下,不是全1了,換成一組符合高斯分布的數值放在模板裡面,比如這時中間的數值最大,往兩邊走越來越小,構造一個小的高斯包。實現的函數為cv2.GaussianBlur()。對於高斯模板,我們需要制定的是高斯核的高和寬(奇數),沿x與y方向的標准差(如果只給x,y=x,如果都給0,那麼函數會自己計算)。高斯核可以有效的出去圖像的高斯雜訊。當然也可以自己構造高斯核,相關函數:cv2.GaussianKernel().
import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread(『flower.jpg『,0) #直接讀為灰度圖像
for i in range(2000): #添加點雜訊
temp_x = np.random.randint(0,img.shape[0])
temp_y = np.random.randint(0,img.shape[1])
img[temp_x][temp_y] = 255
blur = cv2.GaussianBlur(img,(5,5),0)
plt.subplot(1,2,1),plt.imshow(img,『gray『)#默認彩色,另一種彩色bgr
plt.subplot(1,2,2),plt.imshow(blur,『gray『)

㈢ 在python怎麼給函數加上高斯雜訊

mu=0
sigma=0.12
X[i]+=random.gauss(mu,sigma)

㈣ 怎樣用python實現圖像去噪

#coding:utf-8
importsys,os
fromPILimportImage,ImageDraw

#二值數組
t2val={}
deftwoValue(image,G):
foryinxrange(0,image.size[1]):
forxinxrange(0,image.size[0]):
g=image.getpixel((x,y))
ifg>G:
t2val[(x,y)]=1
else:
t2val[(x,y)]=0

#降噪
#根據一個點A的RGB值,與周圍的8個點的RBG值比較,設定一個值N(0<N<8),當A的RGB值與周圍8個點的RGB相等數小於N時,此點為噪點
#G:Integer圖像二值化閥值
#N:Integer降噪率0<N<8
#Z:Integer降噪次數
#輸出
#0:降噪成功
#1:降噪失敗
defclearNoise(image,N,Z):

foriinxrange(0,Z):
t2val[(0,0)]=1
t2val[(image.size[0]-1,image.size[1]-1)]=1

forxinxrange(1,image.size[0]-1):
foryinxrange(1,image.size[1]-1):
nearDots=0
L=t2val[(x,y)]
ifL==t2val[(x-1,y-1)]:
nearDots+=1
ifL==t2val[(x-1,y)]:
nearDots+=1
ifL==t2val[(x-1,y+1)]:
nearDots+=1
ifL==t2val[(x,y-1)]:
nearDots+=1
ifL==t2val[(x,y+1)]:
nearDots+=1
ifL==t2val[(x+1,y-1)]:
nearDots+=1
ifL==t2val[(x+1,y)]:
nearDots+=1
ifL==t2val[(x+1,y+1)]:
nearDots+=1

ifnearDots<N:
t2val[(x,y)]=1

defsaveImage(filename,size):
image=Image.new("1",size)
draw=ImageDraw.Draw(image)

forxinxrange(0,size[0]):
foryinxrange(0,size[1]):
draw.point((x,y),t2val[(x,y)])

image.save(filename)

image=Image.open("d:/1.jpg").convert("L")
twoValue(image,100)
clearNoise(image,4,1)
saveImage("d:/5.jpg",image.size)

㈤ 使用python opencv給圖片加雜訊,自己定義的函數,大家幫我解釋解釋為什麼會改變原圖變數

試試模塊

import
old_img=.deep(image)

㈥ 如何對圖像進行加雜訊處理

這個有很多方法啊。
不過基礎理論是不會變的。拿最簡單的例來說;
一個灰色圖片(通常說的黑白),通常他的色素值在0~255。
如果要加入雜訊,有3種。一種是白雜訊加入值是最大的,也就是隨即加入色素值255.
那樣圖片上看到的效果,就會有不規則的隨即分布的白點。這個白點就是雜訊。
還有就是加入0值,這個是黑點。
兩種同時加入,這樣就有黑白相間的雜訊。
彩色的圖片,也是這個原理。
比如,RGB圖片,一般我們定義RGB圖片的色素值為0~255.
R;0~255
G:0~255
B:0~255
而加入的雜訊是隨即輸入RGB的最大或最小值,既可以是混合值也可以是單值。

㈦ python中的雜訊是什麼意思

白雜訊是時間序列預測中的一個重要概念。如果一個時間序列是白雜訊,它是一個隨機數序列,不能預測。如果預測誤差不是白雜訊,它暗示了預測模型仍有改進空間。

什麼是白雜訊時間序列?

時間序列可能是白雜訊。時間序列如果變數是獨立的且恆等分布的均值為0,那麼它是白雜訊。這意味著所有變數具有相同的方差 (sigma^2),並且每個值與該系列中的所有其他值具有零相關。

如果序列中的變數被高斯分布繪制,則該系列稱為高斯白雜訊。

為什麼這么重要?

白雜訊是時間序列分析和預測中的一個重要的概念。

重要的兩個主要原因為:

1.可預測性:如果你的時間序列是白雜訊,那麼根據定義它是隨機的。你無法對它合理的建模並進行預測。

2.模型診斷:時間序列上一系列誤差的預測模型最好是白雜訊。

模型診斷是時間序列預測的重要領域。

時間序列數據在潛在的因素產生的信號上被預測,它包含一些白雜訊成分。

例如:

y(t)= signal(t)+ noise(t)

通過時間序列預測模型進行預測,可以對其進行收集和分析。在理想情況下,預測誤差應該是白雜訊。

當預測誤差為白雜訊時,意味著時間序列中的所有信號已全部被模型利用進行預測。剩下的就是無法建模的隨機波動。

模型預測的信號不是白雜訊則表明可以進一步對預測模型改進。

你的時間序列白噪音嗎?

你的時間序列如果符合下面條件則不是白雜訊:

原文:網頁鏈接

㈧ 如何為圖像加「localvar」雜訊

Error in ==> imnoise at 80

㈨ OpenCV Python 系列教程4 - OpenCV 圖像處理(上)

學習目標:

OpenCV 中有 150 多種色彩空間轉化的方法,這里只討論兩種:

HSV的色相范圍為[0,179],飽和度范圍為[0,255],值范圍為[0,255]。不同的軟體使用不同的規模。如果要比較 OpenCV 值和它們,你需要標准化這些范圍。

HSV 和 HLV 解釋

運行結果:該段程序的作用是檢測藍色目標,同理可以檢測其他顏色的目標
結果中存在一定的噪音,之後的章節將會去掉它

這是物體跟蹤中最簡單的方法。一旦你學會了等高線的函數,你可以做很多事情,比如找到這個物體的質心,用它來跟蹤這個物體,僅僅通過在相機前移動你的手來畫圖表,還有很多其他有趣的事情。

菜鳥教程 在線 HSV-> BGR 轉換

比如要找出綠色的 HSV 值,可以使用上面的程序,得到的值取一個上下界。如上面的取下界 [H-10, 100, 100],上界 [H+10, 255, 255]
或者使用其他工具如 GIMP

學習目標:

對圖像進行閾值處理,算是一種最簡單的圖像分割方法,基於圖像與背景之間的灰度差異,此項分割是基於像素級的分割

threshold(src, thresh, maxval, type[, dst]) -> retval, dst

計算圖像小區域的閾值。所以我們對同一幅圖像的不同區域得到不同的閾值,這給我們在不同光照下的圖像提供了更好的結果。

三個特殊的輸入參數和一個輸出參數

adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) -> dst

opencv-threshold-python

OpenCV 圖片集

本節原文

學習目標:

OpenCV 提供兩種變換函數: cv2.warpAffine 和 cv2.warpPerspective

cv2.resize() 完成縮放

文檔說明

運行結果

說明 : cv2.INTER_LINEAR 方法比 cv2.INTER_CUBIC 還慢,好像與官方文檔說的不一致? 有待驗證。

速度比較: INTER_CUBIC > INTER_NEAREST > INTER_LINEAR > INTER_AREA > INTER_LANCZOS4

改變圖像的位置,創建一個 np.float32 類型的變換矩陣,

warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst

運行結果:

旋轉角度( )是通過一個變換矩陣變換的:

OpenCV 提供的是可調旋轉中心的縮放旋轉,這樣你可以在任何你喜歡的位置旋轉。修正後的變換矩陣為

這里

OpenCV 提供了 cv2.getRotationMatrix2D 控制
cv2.getRotationMatrix2D(center, angle, scale) → retval

運行結果

cv2.getAffineTransform(src, dst) → retval

函數關系:
egin{bmatrix} x'_i y'_i end{bmatrix}egin{bmatrix} x'_i y'_i end{bmatrix} =

其中

運行結果:圖上的點便於觀察,兩圖中的紅點是相互對應的

透視變換需要一個 3x3 變換矩陣。轉換之後直線仍然保持筆直,要找到這個變換矩陣,需要輸入圖像上的 4 個點和輸出圖像上的對應點。在這 4 個點中,有 3 個不應該共線。通過 cv2.getPerspectiveTransform 計算得到變換矩陣,得到的矩陣 cv2.warpPerspective 變換得到最終結果。

本節原文

平滑處理(smoothing)也稱模糊處理(bluring),是一種簡單且使用頻率很高的圖像處理方法。平滑處理的用途:常見是用來 減少圖像上的噪點或失真 。在涉及到降低圖像解析度時,平滑處理是很好用的方法。

圖像濾波:盡量保留圖像細節特徵的條件下對目標圖像的雜訊進行抑制,其處理效果的好壞將直接影響到後續圖像處理和分析的有效性和可靠性。

消除圖像中的雜訊成分叫做圖像的平滑化或濾波操作。信號或圖像的能量大部分集中在幅度譜的低頻和中頻段,在高頻段,有用的信息會被雜訊淹沒。因此一個能降低高頻成分幅度的濾波器就能夠減弱雜訊的影響。

濾波的目的:抽出對象的特徵作為圖像識別的特徵模式;為適應圖像處理的要求,消除圖像數字化時混入的雜訊。

濾波處理的要求:不能損壞圖像的輪廓及邊緣等重要信息;圖像清晰視覺效果好。

平滑濾波是低頻增強的空間濾波技術,目的:模糊和消除噪音。

空間域的平滑濾波一般採用簡單平均法,即求鄰近像元點的平均亮度值。鄰域的大小與平滑的效果直接相關,鄰域越大平滑效果越好,但是鄰域過大,平滑也會使邊緣信息的損失的越大,從而使輸出圖像變得模糊。因此需要選擇合適的鄰域。

濾波器:一個包含加權系數的窗口,利用濾波器平滑處理圖像時,把這個窗口放在圖像上,透過這個窗口來看我們得到的圖像。

線性濾波器:用於剔除輸入信號中不想要的頻率或者從許多頻率中選擇一個想要的頻率。
低通濾波器、高通濾波器、帶通濾波器、帶阻濾波器、全通濾波器、陷波濾波器

boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst

均值濾波是方框濾波歸一化後的特殊情況。歸一化就是要把處理的量縮放到一個范圍內如 (0,1),以便統一處理和直觀量化。非歸一化的方框濾波用於計算每個像素鄰近內的積分特性,比如密集光流演算法中用到的圖像倒數的協方差矩陣。

運行結果:

均值濾波是典型的線性濾波演算法,主要方法為鄰域平均法,即用一片圖像區域的各個像素的均值來代替原圖像中的各個像素值。一般需要在圖像上對目標像素給出一個模板(內核),該模板包括了其周圍的臨近像素(比如以目標像素為中心的周圍8(3x3-1)個像素,構成一個濾波模板,即 去掉目標像素本身 )。再用模板中的全體像素的平均值來代替原來像素值。即對待處理的當前像素點(x,y),選擇一個模板,該模板由其近鄰的若干像素組成,求模板中所有像素的均值,再把該均值賦予當前像素點(x,y),作為處理後圖像在該點上的灰度個g(x,y),即個g(x,y)=1/m ∑f(x,y) ,其中m為該模板中包含當前像素在內的像素總個數。

均值濾波本身存在著固有的缺陷,即它不能很好地保護圖像細節,在圖像去噪的同時也破壞了圖像的細節部分,從而使圖像變得模糊,不能很好地去除雜訊點。

cv2.blur(src, ksize[, dst[, anchor[, borderType]]]) → dst

結果:

高斯濾波:線性濾波,可以消除高斯雜訊,廣泛應用於圖像處理的減噪過程。高斯濾波就是對整幅圖像進行加權平均的過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過 加權平均 後得到。高斯濾波的具體操作是:用一個模板(或稱卷積、掩模)掃描圖像中的每一個像素,用模板確定的鄰域內像素的加權平均灰度值去替代模板中心像素點的值。

高斯濾波有用但是效率不高。

高斯模糊技術生成的圖像,其視覺效果就像是經過一個半透明屏幕在觀察圖像,這與鏡頭焦外成像效果散景以及普通照明陰影中的效果都明顯不同。高斯平滑也用於計算機視覺演算法中的預先處理階段,以增強圖像在不同比例大小下的圖像效果(參見尺度空間表示以及尺度空間實現)。從數學的角度來看,圖像的高斯模糊過程就是圖像與正態分布做卷積。由於正態分布又叫作高斯分布,所以這項技術就叫作高斯模糊。

高斯濾波器是一類根據高斯函數的形狀來選擇權值的線性平滑濾波器。 高斯平滑濾波器對於抑制服從正態分布的雜訊非常有效。

一維零均值高斯函數為: 高斯分布參數 決定了高斯函數的寬度。

高斯雜訊的產生

GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) -> dst

線性濾波容易構造,並且易於從頻率響應的角度來進行分析。

許多情況,使用近鄰像素的非線性濾波會得到更好的結果。比如在雜訊是散粒雜訊而不是高斯雜訊,即圖像偶爾會出現很大值的時候,用高斯濾波器進行圖像模糊時,雜訊像素不會被消除,而是轉化為更為柔和但仍然可見的散粒。

中值濾波(Median filter)是一種典型的非線性濾波技術,基本思想是用像素點鄰域灰度值的中值來代替該像素點的灰度值,該方法在去除脈沖雜訊、椒鹽雜訊『椒鹽雜訊又稱脈沖雜訊,它隨機改變一些像素值,是由圖像感測器,傳輸信道,解碼處理等產生的黑白相間的亮暗點雜訊。椒鹽雜訊往往由圖像切割引起。』的同時又能保留圖像邊緣細節,

中值濾波是基於排序統計理論的一種能有效抑制雜訊的非線性信號處理技術,其基本原理是把數字圖像或數字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近的真實值,從而消除孤立的雜訊點,對於 斑點雜訊(speckle noise)和椒鹽雜訊(salt-and-pepper noise) 來說尤其有用,因為它不依賴於鄰域內那些與典型值差別很大的值。中值濾波器在處理連續圖像窗函數時與線性濾波器的工作方式類似,但濾波過程卻不再是加權運算。

中值濾波在一定的條件下可以克服常見線性濾波器如最小均方濾波、方框濾波器、均值濾波等帶來的圖像細節模糊,而且對濾除脈沖干擾及圖像掃描雜訊非常有效,也常用於保護邊緣信息, 保存邊緣的特性使它在不希望出現邊緣模糊的場合也很有用,是非常經典的平滑雜訊處理方法。

與均值濾波比較:

說明:中值濾波在一定條件下,可以克服線性濾波器(如均值濾波等)所帶來的圖像細節模糊,而且對濾除脈沖干擾即圖像掃描雜訊最為有效。在實際運算過程中並不需要圖像的統計特性,也給計算帶來不少方便。 但是對一些細節多,特別是線、尖頂等細節多的圖像不宜採用中值濾波。

雙邊濾波(Bilateral filter)是一種非線性的濾波方法,是結合 圖像的空間鄰近度和像素值相似度 的一種折衷處理,同時考慮空域信息和灰度相似性,達到保邊去噪的目的。具有簡單、非迭代、局部的特點。

雙邊濾波器的好處是可以做邊緣保存(edge preserving),一般過去用的維納濾波或者高斯濾波去降噪,都會較明顯地模糊邊緣,對於高頻細節的保護效果並不明顯。雙邊濾波器顧名思義比高斯濾波多了一個高斯方差 sigma-d ,它是基於空間分布的高斯濾波函數,所以在邊緣附近,離的較遠的像素不會太多影響到邊緣上的像素值,這樣就保證了邊緣附近像素值的保存。 但是由於保存了過多的高頻信息,對於彩色圖像里的高頻雜訊,雙邊濾波器不能夠干凈的濾掉,只能夠對於低頻信息進行較好的濾波。

運行結果

學習目標:

形態變換是基於圖像形狀的一些簡單操作。它通常在二進制圖像上執行。

膨脹與腐蝕實現的功能

侵蝕的基本思想就像土壤侵蝕一樣,它會侵蝕前景物體的邊界(總是試圖保持前景為白色)。那它是做什麼的?內核在圖像中滑動(如在2D卷積中)。只有當內核下的所有像素都是 1 時,原始圖像中的像素( 1 或 0 )才會被視為 1 ,否則它將被侵蝕(變為零)

erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst

與腐蝕的操作相反。如果內核下的至少一個像素為「1」,則像素元素為「1」。因此它增加了圖像中的白色區域或前景對象的大小增加。通常,在去除噪音的情況下,侵蝕之後是擴張。因為,侵蝕會消除白雜訊,但它也會縮小我們的物體。所以我們擴大它。由於噪音消失了,它們不會再回來,但我們的物體區域會增加。它也可用於連接對象的破碎部分

㈩ 如何用python搞定驗證碼中的噪點

看上去不怎麼難,沒有干擾線沒有粘連沒有扭曲.但我還是沒能用pytesser直接將它識別出來,因為當中有噪點和其他背景雜訊的存在.我的工作就是去掉這些討厭的東西
先介紹一下,我們的工具:
1.Pytesser它是基於一個c語言實現名為tesser的識別工具的python封裝.可惜比較笨,只能做最簡單的識別而且不認識漢字
2.Requests它是我們喜歡寫爬蟲的孩子的最愛,提供人性化的介面,代價是失去了一點效率(寫python就別考慮效率啦)
3.BeautifulSoup它和Requests是一對好機油,讓提取文檔中所需的內容變成一件簡單的事情
4.PIL它是今天的主角,PIL是專門用作圖像處理的庫,很好很強大.熟練的人甚至可以用它來P圖
如何寫爬蟲去實現模擬登錄此處不細說,下面說說怎麼解決驗證碼識別
解決思路如下:
1.先用PIL對圖像做一次圖像增強,因為原圖中數字的邊緣和背景中的雜訊並不是太分明,做了增強之後能將兩者分離.如果不分離,可能會在去噪點的時候導致數字中有部分會缺失
im = Image.open("randomimage/randomImage11.jpg")
im = ImageEnhance.Sharpness(im).enhance(3)參數為3是經過實驗之後感覺比較理想的值,太強不好,太弱也不好
2.做完預處理之後,就是去背景雜訊了.背景雜訊指的是背景中各種明暗變換的色塊,肉眼也許不會注意到這個.但是它的存在會給識別帶來影響.我最初的做法是將圖像轉換為只有黑白兩色,這樣自然就將雜訊轉換成了噪點.
效果如圖
但我希望能去掉噪點,成為這樣

最先想到的是種子染色法 ,什麼是種子染色法請參看這個鏈接
為了防止壞鏈,此處做部分轉載
種子染色法英文叫做Flood Fill ,實際上Flood Fill這個名稱更貼切一點,因為這個方法作用在一個圖的結點上時恰似洪水一樣「淹沒」與之相連的其他結點並以相同的方式蔓延出去,這個方法通常用於計算一個圖的極大連通子圖(這里的「圖」是圖論的概念)。設想一個無向圖,我們從這個圖中一個未標號(「標號」可以理解為「染色」)的結點開始,將此結點和從這個結點出發可達的所有結點都賦予相同的標號(染上相同的顏色),那麼我們就得到了這些被標號的結點所組成的一個極大連通子圖,搜索下一個未標號的結點並重復上述過程我們便可以找到所有的極大連通子圖。「染色」的過程可以用DFS或者BFS實現,如果結點數為V,邊數為E,因為我們在Flood Fill過程中「造訪」每個結點兩次,「造訪」每條邊兩次,所以得到所有極大連通子圖的時間復雜度為o(V+E) 。
來自Wikipedia的一個示例:

想像每個白色方塊為圖中的結點,相鄰的方塊(上下左右)有邊相連,那麼這個圖就有三個極大連通子圖,這演示了Flood Fill查找其中一個極大連通子圖的過程。
在這是借要用種子染色法計算每塊的面積,然後把小體積的塊當作噪點去除.
代碼在這

def check(j,i):
try:
if pix[j,i] == 0 and matrix[j][i] != -1:
return True
else:
return False
except:
return False

def juli(r,s):
return abs(r[0]-s[0])+abs(r[1]-s[1])+abs(r[2]-s[2])

for i in range(w):
for j in range(h):
r = [0,0,0]
s = [0,0,0]
if pix[j,i] == 0:
if check(j-1,i):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j-1,i))
print r
print s
print "-"*55
if juli(r,s) <=l:
matrix[j][i] = matrix[j-1][i]
maps[str(matrix[j][i])]+=1
elif check(j-1,i-1):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j-1,i-1))
if juli(r,s) <=l:
matrix[j][i] = matrix[j-1][i-1]
maps[str(matrix[j][i])]+=1
elif check(j,i-1):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j-1,i))
if juli(r,s) <=l:
matrix[j][i] = matrix[j][i-1]
maps[str(matrix[j][i])]+=1
elif check(j+1,i+1):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j+1,i+1))
if juli(r,s) <=l:
matrix[j][i] = matrix[j+1][i+1]
maps[str(matrix[j][i])]+=1
elif check(j,i+1):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j,i+1))
if juli(r,s) <=l:
matrix[j][i] = matrix[j][i+1]
maps[str(matrix[j][i])]+=1
elif check(j-1,i+1):
pr[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j-1,i+1))
if juli(r,s) <=l:
matrix[j][i] = matrix[j-1][i+1]
maps[str(matrix[j][i])]+=1
elif check(j+1,i-1):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j+1,i-1))
if juli(r,s) <=l:
matrix[j][i] = matrix[j+1][i-1]
maps[str(matrix[j][i])]+=1
elif check(j+1,i):
r[0],r[1],r[2] = im2.getpixel((j,i))
s[0],s[1],s[2] = im2.getpixel((j+1,i))
if juli(r,s) <=l:
matrix[j][i] = matrix[j+1][i]
maps[str(matrix[j][i])]+=1
else:
n+=1
maps[str(n)]=1
matrix[j][i] = n
for i in range(w):
for j in range(h):
if matrix[j][i]!=-1 and maps[str(matrix[j][i])]<=2:
im.putpixel((j,i),255)View Code

結果呢,不是很理想因為這個體積參數設小了,噪點沒去干凈,設大了數字部分可能也去了一小塊.最重要的是這里噪點的大小不是很規律,很難找到一個不錯的面積參數.
失敗只是暫時的,經過觀察發現背景雜訊顏色明顯比數字要淺的多.這也意味著它的RGB值要比數字小的多,通過分析RGB值能去掉大部分雜訊,剩下來的噪點可以再通過種子染色法處理.也就是說,分別在兩張圖片(分別是黑白和彩色)上獲取信息,在一張圖片上做處理最後做識別
核心代碼在這
r[0],r[1],r[2] = im2.getpixel((j,i))
if r[0]+r[1]+r[2]>=400 or r[0]>=250 or r[1]>=250 or r[2]>=250 :
im2.putpixel((j,i),(255,255,255)) 至此,本次識別的問題就搞定啦,成功率在50%以上基本滿足介面的需求

閱讀全文

與python圖像加雜訊相關的資料

熱點內容
美食博主用什麼app拍視頻 瀏覽:812
ipone手機如何加密微信 瀏覽:354
自來水加密閥閥帽 瀏覽:431
華為交換機dhcp配置命令 瀏覽:315
androidbitmap縮小 瀏覽:271
單片機串口控制燈 瀏覽:84
大訊雲伺服器安裝視頻 瀏覽:784
華為演算法領先世界 瀏覽:654
linux路由重啟 瀏覽:566
php的模板編程 瀏覽:321
編譯器原理與實現書 瀏覽:709
dos選擇命令 瀏覽:18
apm固件編譯到單片機 瀏覽:121
聯通深藍卡都包含什麼app 瀏覽:266
如何判斷網路伺服器正常 瀏覽:652
路由器搭橋遠端伺服器地址是什麼 瀏覽:518
編譯動態庫時會連接依賴庫嗎 瀏覽:710
淘寶手機加密是隨機的嗎 瀏覽:675
解壓包子怎麼裝飾 瀏覽:588
四個數湊24演算法 瀏覽:679