2016-04-27 20 views
0

こんにちは、グレースケールの写真(example.jpg)からx、y座標を抽出しようとしています。 gray scale photoグレースケールから座標を抽出する

私はその後、私は以下のコードによって

A=imread('example.jpg'); 
B=imread('example1.jpg'); 
Size=size(A) 
C=zeros(Size); 
for j=1:Size(2) 
    for i=1:Size(1) 
      if A(i,j)==B(i,j); 
      C(i,j)=1; 
     else C(i,j)=255; 
     end 
    end 
end 
K=mat2gray(C); 
imshow(K) 

と赤色ドット領域を抽出dot points for coordinates

y座標(example1.jpg)、IはXが欲しい(赤色ドットで)点をマークこれを行うと、私はドットを抽出することができます(私は興味がある)と画像の下に得たが、ドットポイントは私の実際のマーキングよりも大きい(dots.png)。私はその後、

X=imread('dots.png'); 
[I,J] = find(X(:,:,1) == 255); %// Change 
scatter(I,J) 

:そして、それは私がコードの下に使用し、X、これらのドットの点のy座標を取得する次に、すべてのドット(10個のドットのうち8)

extracted dot points

をキャプチャしませんでしたI、J、および写真の点で座標が正しい位置を示しているかどうかをチェックするために、xとyの座標をI、J、および画像で取得します。私は灰色の写真にマークドットが小さいとそれがあるときにどのように私は(図3に小さなドットのポイントを得ることができ

1):

counter check dot points

しかし、ここで私が解決するべき問題がありますその結果、x、y座標(ここでは、Jの点で)を抽出すると、各ドットが非常に大きいので、1つのドットに対して複数のxとyが得られます。各ドットに1つのxと1つのyを得る。

2)マークするすべてのドットをキャプチャする方法

3)図3と4を見ると、図3はカボチャの実際の向きを示していますが、図4では回転しています。これはどうやって起こり、どうすれば修正できますか?

4)私は、私の方法よりも簡単な抽出方法があると思いました。アドバイスをお願いしますか? はここで、より完全な例が答えのために、だあなた

+0

あなたはhttps://www.mathworks.com/help/matlab/ref/ginput.htmlを検討しましたか?まず最初にポイントを選択する方法に応じて、ginputは選択したポイント座標の実際のx、yペアを返します。 – akamath

+0

@akamath ..ありがとう。それは私に多くの助け:) –

答えて

0

ありがとう:これは、対話的に、画像内の5つのポイントを選択し、それらの点が赤色すべき

I = imread('cameraman.tif'); 
figure, imshow(I) 
[y, x] = ginput(5); % This chooses the five points interactively. 

close 
color = I; % making a RGB color version of the image. 
color(:,:,2) = I; 
color(:,:,3) = I; 

for idx = 1:numel(x) 
% Change the color of the points to red one by one. 
    xpoint = x(idx); 
    ypoint = y(idx); 
    color(xpoint, ypoint, 1) = 255; 
    color(xpoint, ypoint, 2) = 0; 
    color(xpoint, ypoint, 3) = 0;  
end 

figure, 
imshow(color) % display the colored dot image. 

0

私はあなたが圧縮ファイル形式を使用して赤い点でイメージを保存したことをお勧めします。

塊が24×24 macroblocksように見える - ここではそれがクローズアップ1であるアルゴリズムは(ないJPEG)ことを使用していますどのような圧縮わからない...

enter image description here

にかかわらず、簡単にA(i、j)!= B(i、j)のときのA(i、j)とB(i、j)の値をリストすることですあなた自身。

関連する問題