我有这张图片:
在这张图片中,我有 11 个形状(看起来像椭圆)。我想找到每个形状中每个像素的 RGB(包括白色边缘/边界,因为它是形状的一部分)。
如果有帮助,我有每个形状的中心坐标。
非常感谢!
我有这张图片:
在这张图片中,我有 11 个形状(看起来像椭圆)。我想找到每个形状中每个像素的 RGB(包括白色边缘/边界,因为它是形状的一部分)。
如果有帮助,我有每个形状的中心坐标。
非常感谢!
这是我在审查问题时想到的一个 hacky 解决方案:
现在您可以简单地获取粉红色像素列表:
foundPixels = find(img == pink); % pink holds the value for the pink color I used.
现在您可以在原始图像 ( ) 上使用这些索引pixels = original(foundPixels);
来获得您想要的像素。
以下是使您的工作变得轻松的命令...
正如“Superbest”所说,用命令填充图像
%% Example%%
img = imread('coins.png');
BW4 = im2bw(img );
BW5 = imfill(BW4,'holes');
imshow(BW4), figure, imshow(BW5);
现在使用命令 bwlabeln(),找出簇或形状的数量。
%% Example%%
L = bwlabel(BW5);
figure,imshow(L,[]);
L 会给你相同数量的形状,所有像素都属于相同的形状。L 包含 BW 中连接组件的标签。BW 可以有任何维度;L 与 BW 大小相同。L 的元素是大于或等于 0 的整数值。标记为 0 的像素是背景。标记为 1 的像素构成一个对象,标记为 2 的像素构成第二个对象,依此类推。
假设您有两个形状或区域然后找到原始颜色或灰度值 od 如下。
%% Example%%
cods = find(L==1);
Shape1(1:size(img,1),1:size(img,2))=0;
Shape1(cods) = img(cods);
%% Now shape1 is same size as img, but will have gray scale values at region1 locations only,you will get RGB valuse in shape1 image.. repeate it for as many shapes as you have in your image.
祝您编码愉快...