2012-04-08 33 views
0

我正在使用神經網絡進行字符識別項目。 我的第一個目標是從圖像中讀取那些找到任何字母的像素。我的意思是,如果圖像A,B和C在隨機位置有三個字母,我將如何讀取A,B和C的像素值並將它們存儲在矩陣中?將單個像素從圖像中讀入矩陣

+0

要將此圖像讀入java程序或matlab程序中嗎? – daveb 2012-04-08 09:44:10

+0

Matlab。我想處理矩陣中的字符像素,matlab可以比java更有效地處理矩陣。 – user1154684 2012-04-08 10:30:15

回答

0

這個問題不是很清楚。如果你的意思是你有一個像A.png,B.png等圖像文件,並且希望在矩陣中的像素值,你可以創建在MATLAB的RBG矩陣

image = imread('A.png'); 

這會給你一個寬度 - RGB值的高 - 3矩陣。


感謝您的圖像鏈接,讓我們再試一次! :-)

因此,假設您不想手動說出每個字符的位置,我們必須自動找到它們。爲此,我們將其轉換爲黑色&白色,然後使用bwconncomp查找每個字母的像素。

image = imread('A.png'); 
ibw = im2bw(image); 
C = bwconncomp(image); 
boxes = regionprops(C, 'BoundingBox'); 
letters = cell{26}; 
for i=1:26 
    %get left, top, width, height from boxes(i).BoundingBox 
    %I'm not on matlab at the moment, so I don't know exactly how to 
    %but it should be quite easy. 
    letters{i} = image(left:left+width, top:top+height, :); 
end 

後,我們發現連接組件,我們使用regionprops得到他們的邊框,並把每個邊界框在一個單獨的圖像。

+0

我有一個圖像文件image.jpeg,它在隨機座標上顯示不同大小的三個字母A,B和C.我想讀取矩陣中A,B和C的像素值。 – user1154684 2012-04-08 10:04:57

+0

你能提供這個圖片的鏈接嗎?仍然不確定你想要什麼。 – Richante 2012-04-08 11:31:41

+0

http://www.soundonsight.org/wp-content/uploads/2011/02/alphabet.gif現在,我將如何讀取字母A B C等各個矩陣中的像素。還要注意,圖像中的字母可能是手寫的。 – user1154684 2012-04-08 15:08:25

0

你可以這樣做:

imageA=imread('imageA.jpg'); 
pixel1=imageA(y,x,:); 
0

當使用Java,可以先加載圖像爲BufferedImage:

BufferedImage image = ImageIO.read(imageUrl); 

然後你可以獲取單個像素的RGB值:

image.getRGB(x, y); 

您還可以使用Color對象將RGB整數值解析爲單獨的顏色代碼。

Color color = new Color(image.getRGB(x,y)); 
int red = color.getRed(); 
int green = color.getGreen(); 
int blue = color.getBlue(); 

從現在開始,你可以做任何你想做的事情。我過去一直在做同樣的事情。我的建議是,你不應該通過使用所有的顏色使搜索空間太大。黑色和白色也將在開始時進行。