簡體   English   中英

從圖像中將單個像素讀入矩陣

[英]Reading individual pixels into matrix from an Image

我正在使用 neural.networks 進行字符識別項目。 我的第一個目標是從我發現任何字母的圖像中讀取那些像素。 我的意思是,如果圖像 A、B 和 C 中隨機出現三個字母,我將如何讀取 A、B 和 C 的像素值並將它們存儲在矩陣中?

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

image = imread('A.png');

這將為您提供 RGB 值的 width-height-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獲取它們的邊界框,並將每個邊界框放在單獨的圖像中。

你可以做:

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

使用 Java 時,您可以先將圖像加載為 BufferedImage:

BufferedImage image = ImageIO.read(imageUrl);

然后您可以通過以下方式獲得各個像素的 RGB 值:

image.getRGB(x, y);

您還可以使用 Color object 將 RGB integer 值解析為單獨的顏色代碼。

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

從這一點開始,你幾乎可以做任何你想做的事。 我過去曾處理過同樣的事情。 我的建議是您不應該通過使用所有顏色使搜索空間太大。 黑色和白色也可以在開始時使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM