大家好,我試圖此驗證碼轉換爲「黑與白」(二值化)圖像,其中的人物是白色的,所有的剩餘(背景下,線,隨機圖片)是黑色。
鏈接到驗證碼可以被找到here。刷新會給你另一個驗證碼。
原因:
我知道大多數人認爲這是錯誤惹的驗證碼所以我在這裏捍衛自己。這將僅用於知識/自我挑戰。沒有其他用途計劃這些圖像。
問題:
後研究這些圖像了一段時間,我想通了,一個很好的形式給出。將更換的顏色:「白色和黃色」到「Color.Black」,和所有其他顏色應該替換爲「Color.White」。
在此之後,我只是「反轉」的顏色,引導我到我想要的輸出。
代碼示例:
在這段代碼中,我試圖取代每個圖像的顏色「黑」的天藍色像素。
WebRequests wr = new WebRequests(); // My class to handle WebRequests
Bitmap bmp;
string url = "http://www.fazenda.rj.gov.br/projetoCPS/codigoImagem";
bmp = wr.GetBitmap (url);
for (int i = 1; i < bmp.Height ; i++)
{
for (int j = 1 ; j < bmp.Width ; j++)
{
if (bmp.GetPixel(j,i).Equals(Color.Black))
{
bmp.SetPixel(j,i, Color.SkyBlue);
}
}
}
此代碼根本不起作用,我不確定爲什麼,但在此示例中沒有像素被替換。
問:
我怎樣才能使這項工作?我在這裏錯過了什麼?
另外,對於我來說,理想的場景是將此圖像的顏色調色板「減少」爲「基本」顏色,這將使我的工作更容易。
我已經嘗試了AForge Framework,我用它來減少顏色,但它根本不工作,結果不是我所期望的。
我可以在這裏做什麼,以便正確地二值化此圖像?
在此先感謝,
Marcello Lins。
的CAPTCHA我看到含有黃色「Q」和「C」和一個黑色的「Q」,也是一種白色的「W」和一個白色的「C」你方法會使黑色消失。 – LSerni
他們不會消失,因爲背景是灰色的,從不黑。 我想讓所有的角色都具有相同的顏色,並且由於角色的顏色只能是「白色,黃色和黑色」,所以我最終會將所有角色都看作黑色,而其他所有角色都會被視爲背景。 –