您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

02 python買粉絲素材(有沒有什么比較好的推薦讀書的買粉絲買粉絲)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-04-29 04:43:30【】8人已围观

简介>針對以上原始素材的處理步驟如下:讀取原始圖片素材將彩色圖片二值化為黑白圖片去除背景噪點8.1__禱計主要步驟如下:將RGB彩圖轉為灰度圖將灰度圖按照設定閾值轉化為二值圖image=(img_path

>針對以上原始素材的處理步驟如下:

讀取原始圖片素材

將彩色圖片二值化為黑白圖片

去除背景噪點

8.1__禱計

主要步驟如下:

將RGB彩圖轉為灰度圖

將灰度圖按照設定閾值轉化為二值圖

image=(img_path)

imgry=('L')#轉化為灰度圖table=get_bin_table()

out=(table,'1')

上面引用到的二值函數的定義如下:

1234567891011121314

def_et_bin_table(threshold=140):__"""__獲取灰度轉二值的映射table__:paramthreshold:__:return:__"""__table=_]__for__n_ange(256):____if_<threshold:______(0)____else:______(1)___eturn_able

由PIL轉化后變成二值圖片:0表示黑色,1表示白色。二值化后帶噪點的6937_南袼氐閌涑齪筧縵巒:

1111000111111000111111100001111100000011

1110111011110111011111011110111100110111

1001110011110111101011011010101101110111

1101111111110110101111110101111111101111

1101000111110111001111110011111111101111

1100111011111000001111111001011111011111

1101110001111111101011010110111111011111

1101111011111111101111011110111111011111

1101111011110111001111011110111111011100

1110000111111000011101100001110111011111

如果你是近視眼,然后離屏幕遠一點,可以隱約看到6937_墓羌芰恕

8.2__コ氳

在轉化為二值圖片后,就需要清除噪點。本文選擇的素材比較簡單,大部分噪點也是最簡單的那種_鋁⒌,所以可以通過檢測這些孤立點就能移除大量的噪點。

關于如何去除更復雜的噪點甚至干擾線和色塊,有比較成熟的算法:_樗畛浞_loodFill,后面有興趣的時間可以繼續研究一下。

本文為了問題簡單化,干脆就用一種簡單的自己想的_虻グ旆_來解決掉這個問題:

對某個_詰_周邊的九宮格里面的黑色點計數

如果黑色點少于2個則證明此點為孤立點,然后得到所有的孤立點

對所有孤立點一次批量移除。

下面將詳細介紹關于具體的算法原理。

將所有的像素點如下圖分成三大類

頂點A

非頂點的邊界點B

內部點C

種類點示意圖如下:

其中:

A類點計算周邊相鄰的3個點(如上圖紅框所示)

B類點計算周邊相鄰的5個點(如上圖紅框所示)

C類點計算周邊相鄰的8個點(如上圖紅框所示)

當然,由于基準點在計算區域的方向不同,A類點和B類點還會有細分:

A類點繼續細分為:左上,左下,右上,右下

B類點繼續細分為:上,下,左,右

C類點不用細分

然后這些細分點將成為后續坐標獲取的準則。

主要算法的python實現如下:

defsum_9_region(img,x,y):_"""

9鄰域框,以當前點為中心的田字框,黑點個數

:paramx:

:paramy:

:return:_"""

#todo判斷圖片的長寬度下限

cur_pixel=((x,y))#當前像素點的值

width=

height=_ifcur_pixel==1:#如果當前點為白色區域,則不統計鄰域值

return0_ify==0:#第一行

ifx==0:#左上頂點,4鄰域

#中心點旁邊3個點

sum=cur_pixel\____+((x,y+1))\____+((x+1,y))\____+((x+1,y+1))___return4-sum__elifx==width-1:#右上頂點

sum=cur_pixel\____+((x,y+1))\____+((x-1,y))\____+((x-1,y+1))___return4-sum__else:#最上非頂點,6鄰域

sum=((x-1,y))\____+((x-1,y+1))\____+cur_pixel\____+((x,y+1))\____+((x+1,y))\____+((x+1,y+1))___return6-sum_elify==height-1:#最下面一行

ifx==0:#左下頂點

#中心點旁邊3個點

sum=cur_pixel\____+((x+1,y))\____+((x+1,y-1))\____+((x,y-1))___return4-sum__elifx==width-1:#右下頂點

sum=cur_pixel\____+((x,y-1))\____+((x-1,y))\____+((x-1,y-1))___return4-sum__else:#最下非頂點,6鄰域

sum=cur_pixel\____+((x-1,y))\____+((x+1,y))\____+((x,y-1))\____+((x-1,y-1))\____+((x+1,y-1))___return6-sum_else:#y不在邊界

ifx==0:#左邊非頂點

sum=((x,y-1))\____+cur_pixel\____+((x,y+1))\____+((x+1,y-1))\____+((x+1,y))\____+((x+1,y+1))___return6-sum__elifx==width-1:#右邊非頂點

#print('%s,%s'%(x,y))

sum=((x,y-1))\____+cur_pixel\____+((x,y+1))\____+((x-1,y-1))\____+((x-1,y))\____+((x-1,y+1))___return6-sum__else:#具備9領域條件的

sum=((x-1,y-1))\____+((x-1,y))\____+((x-1,y+1))\____+((x,y-1))\____+cur_pixel\____+((x,y+1))\____+((x+1,y-1))\____+((x+1,y))\____+((x+1,y+1))___return9-sum

Tips:這個地方是相當考驗人的細心和耐心程度了,這個地方的工作量還是蠻大的,花了半個晚上的時間才完成的。

計算好每個像素點的周邊像素黑點(注意:PIL轉化的圖片黑點的值為0)個數后,只需要篩選出個數為1或者2_牡愕淖曇次_孤立點_U飧讎卸戲椒?贍懿惶既,但是基本上能夠滿足本文的需求了。

經過預處理后的圖片如下所示:

對比文章開頭的原始圖片,那些_鋁⒌_都被移除掉,相對比較_刪_的驗證碼圖片已經生成。

9__計址懈

由于字符型_櫓ぢ臚計_本質就可以看著是由一系列的_ジ鱟址計_拼接而成,為了簡化研究對象,我們也可以將這些圖片分解到_蛹_,即:_話ジ鱟址耐計

于是,我們的研究對象由__種字串的組合對象”_涑_“10種阿拉伯數字”_拇_,極大的簡化和減少了處理對象。

9.1__指釧惴

現實生活中的字符驗證碼的產生千奇百怪,有各種扭曲和變形。關于字符分割的算法,也沒有很通用的方式。這個算法也是需要開發人員仔細研究所要識別的字符圖片的特點來制定的。

當然,本文所選的研究對象盡量簡化了這個步驟的難度,下文將慢慢進行介紹。

使用圖像編輯軟件(PhoneShop或者其它)打開驗證碼圖片,放大到像素級別,觀察其它一些參數特點:

可以得到如下參數:

整個圖片尺寸是40*10

單個字符尺寸是6*10

左右字符和左右邊緣相距2個像素

字符上下緊挨邊緣(即相距0個像素)

這樣就可以很容易就定位到每個字符在整個圖片中占據的像素區域,然后就可以進行分割了,具體代碼如下:

defget_crop_imgs(img):_"""

按照圖片的特點,進行切割,這個要根據具體的驗證碼來進行工作.#見原理圖

:paramimg:

:return:_"""

child_img_list=[]_foriinrange(4):

x=2+i*(6+4)#見原理圖

y=0

child_img=((x,y,x+6,y+10))

child_img_(child_img)_returnchild_img_list

然后就能得到被切割的_蛹_的圖片元素了:

9.2__諶菪〗

基于本部分的內容的討論,相信大家已經了解到了,如果驗證碼的干擾(扭曲,噪點,干擾色塊,干擾線)做得不夠強的話,可以得到如下兩個結論:

4位字符和40000位字符的驗證碼區別不大

純字母

不區分大小寫。分類數為26

區分大小寫。分類數為52

純數字。分類數為10

數字和區分大小寫的字母組合。分類數為62

純數字__數字及字母組合_難櫓ぢ肭鴆淮

在沒有形成_甘痘蛘嘸負渭_的難度增加,而只是_咝雜邢藜_增加計算量時,意義不太大。

10__嘰綣橐

本文所選擇的研究對象本身尺寸就是統一狀態:6*10的規格,所以此部分不需要額外處理。但是一些進行了扭曲和縮放的驗證碼,則此部分也會是一個圖像處理的難點。

11__P脫盜凡街

在前面的環節,已經完成了對單個圖片的處理和分割了。后面就開始進行_侗鵡P_的訓練了。

整個訓練過程如下:

大量完成預處理并切割到原子級的圖片素材準備

對素材圖片進行人為分類,即:打標簽

定義單張圖片的識別特征

使用SVM訓練模型對打了標簽的特征文件進行訓練,得到模型文件

12__夭淖急

本文在訓練階段重新下載了同一模式的4數字的驗證圖片總計:3000張。然后對這30

很赞哦!(361)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:黑龙江省大兴安岭新林区

工作室:小组

Email:[email protected]