二次元のスライス画像​に対して画像内のデー​タを使った距離の測定​は可能でしょうか?

二次元のスライス画像に対して画像データを利用してした画像に示すような矢印間の距離を求めたいです。
イメージビュアーを使用する以外でどういった方法がありますでしょうか?
ご教授していただけると幸いです.
宜しくお願いします.

1 Commento

Kenta
Kenta il 11 Feb 2020
imshowに相当するもので画像を表示させ、クリックして2点を定義し、その距離を求めたらよい気がします。ただ、2次元のスライス画像を扱ったことがなく、あくまでイメージです。上のような画像で、ここで共有できるものはありますか?それとも上の画像をjpgで保存し、距離(ピクセル数)を計算できればそれで十分でしょうか?

Accedi per commentare.

 Risposta accettata

Kenta
Kenta il 12 Feb 2020

0 voti

こんにちは、コメントの返信ありがとうございます。画像を読み込んで(ここではex.bmpとしています。適宜変更ください)、左クリックで場所を選択、2点選択したのちに、右クリックで終了すれば距離がタイトルとして出力されます。このようなイメージで正しいでしょうか。
example.JPG
clear;clc;close all
I=imread('ex.bmp');
figure;imshow(I);hold on
[x,y,P]=impixel(I);
Distance=sqrt(((x(2)-x(1))^2)+((y(2)-y(1))^2));
plot(x(1:2),y(1:2),'-*r')
title(strcat('distance:',num2str(Distance)))

7 Commenti

virgo kk
virgo kk il 12 Feb 2020
回答有難うございます
画像を表示してマウスで二点をクリックはできるのですが、そこから距離が出力できず,
下のようなエラー文が表示されてしまいます。どう対処すればよいでしょうか??
エラー: getpts (line 174)
マウス ポイント選択中に割り込みがありました。
エラー: impixel>parse_inputs (line 199)
[xi,yi] = getpts(ancestor(h,'axes'));
エラー: impixel (line 76)
[a,cm,xi,yi,x,y] = parse_inputs(varargin{:});
エラー: caldis (line 4)
[x,y,P]=impixel(I);
Kenta
Kenta il 12 Feb 2020
Modificato: Kenta il 12 Feb 2020
ご返信ありがとうございます。2点クリックした後、右クリックしていますか?右クリックするとそのエラーを返すのですかね?私はこちらのコードでうまくできているのですが、バージョンの問題ですかね?わたしは2019bです
virgo kk
virgo kk il 12 Feb 2020
回答有難うございます。こちらのverでは2017bなのでもしかするとバージョンで問題があるかもしれません。別の方法を考えてみます。有難うございました。頑張ります。
Kenta
Kenta il 12 Feb 2020
matlab onlineで、'onion.png'を対象画像としてやってみてはいかがでしょうか。それでうまく走ればバージョンの問題の可能性が高まると思います。その場合は、今晩などにアップデートすればよいのではないでしょうか。
virgo kk
virgo kk il 12 Feb 2020
有難うございます。アップデートに関してはpc上厳しいかもしれませんが、すぐに試してみます。
Kenta
Kenta il 12 Feb 2020
画面上でクリックしたらその座標を返す関数はほかにもあると思います。それで代替すればよさそうです。もし見つかったら教えてもらえると幸いです。
virgo kk
virgo kk il 14 Feb 2020
上の手順で解決しました.こちらのpc上の問題でした.有難うございました

Accedi per commentare.

Più risposte (0)

Richiesto:

il 10 Feb 2020

Commentato:

il 14 Feb 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!