[英]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.