私はこの画像を持っています:
この画像では、11個の形状があります(楕円のように見えます)。各形状の各ピクセルのRGBを見つけたい(形状の一部であるため、白いエッジ/境界を含む)。
それが助けになるなら、私はそれぞれの形の中心座標を持っています。
どうもありがとう!
私はこの画像を持っています:
この画像では、11個の形状があります(楕円のように見えます)。各形状の各ピクセルのRGBを見つけたい(形状の一部であるため、白いエッジ/境界を含む)。
それが助けになるなら、私はそれぞれの形の中心座標を持っています。
どうもありがとう!
ここにあなたの仕事を簡単にするコマンドがあります...
「スーパーベスト」が言ったように、コマンドで画像を塗りつぶします
%% 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 は、同じ形状に属するすべてのピクセルに対して同じ数の形状の数を示します。BW の連結要素のラベルを含む L。BW は任意のディメンションを持つことができます。LはBWと同じサイズです。L の要素は 0 以上の整数値です。0 のラベルが付いたピクセルは背景です。1 というラベルの付いたピクセルは 1 つのオブジェクトを構成し、2 というラベルの付いたピクセルは 2 番目のオブジェクトを構成します。
2 つの形状または領域があり、元の色またはグレー スケール値を次のように求めるとします。
%% 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.
楽しいコーディングを...
これは、質問を確認しているときに思いついたハッキーな解決策です。
これで、ピンク色のピクセルのリストを簡単に取得できます。
foundPixels = find(img == pink); % pink holds the value for the pink color I used.
これで、元の画像 ( ) でこれらのインデックスを使用してpixels = original(foundPixels);
、必要なピクセルを取得できます。