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

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

1 个评论

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

请先登录,再进行评论。

 采纳的回答

Kenta
Kenta 2020-2-12

0 个投票

こんにちは、コメントの返信ありがとうございます。画像を読み込んで(ここでは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 个评论

virgo kk
virgo kk 2020-2-12
回答有難うございます
画像を表示してマウスで二点をクリックはできるのですが、そこから距離が出力できず,
下のようなエラー文が表示されてしまいます。どう対処すればよいでしょうか??
エラー: 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 2020-2-12
编辑:Kenta 2020-2-12
ご返信ありがとうございます。2点クリックした後、右クリックしていますか?右クリックするとそのエラーを返すのですかね?私はこちらのコードでうまくできているのですが、バージョンの問題ですかね?わたしは2019bです
virgo kk
virgo kk 2020-2-12
回答有難うございます。こちらのverでは2017bなのでもしかするとバージョンで問題があるかもしれません。別の方法を考えてみます。有難うございました。頑張ります。
Kenta
Kenta 2020-2-12
matlab onlineで、'onion.png'を対象画像としてやってみてはいかがでしょうか。それでうまく走ればバージョンの問題の可能性が高まると思います。その場合は、今晩などにアップデートすればよいのではないでしょうか。
virgo kk
virgo kk 2020-2-12
有難うございます。アップデートに関してはpc上厳しいかもしれませんが、すぐに試してみます。
Kenta
Kenta 2020-2-12
画面上でクリックしたらその座標を返す関数はほかにもあると思います。それで代替すればよさそうです。もし見つかったら教えてもらえると幸いです。
virgo kk
virgo kk 2020-2-14
上の手順で解決しました.こちらのpc上の問題でした.有難うございました

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Image Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!