円ROIの面にストライプを表示したい
2 views (last 30 days)
Show older comments
drawcircleで円ROIを描画しています。StripeColorでエッジ部分をストライプにできることは確認しているのですが,面部分にストライプを表示することは可能でしょうか?
1 Comment
Atsushi Ueno
on 29 Sep 2021
drawcircleで描画した円ROI(Circleオブジェクト)にその様な機能はありません(現時点では)
>面部分にストライプを表示することは可能でしょうか?
不可能ではありませんが、自分で開発する必要があります。円ROIの対話的操作に連動しなければならないのでしょうから、images.roi.Circleを継承し、面の描画メソッドにストライプ描画機能を追加しなければなりません。関係するソースが全て開示されていなければ、開発は難しいでしょう。
I = imread('baby.jpg'); figure; imshow(I); % cute baby
h = images.roi.Circle(gca,'Center',[1000 1000],'Radius',500,'StripeColor','g');
matlab.graphics.internal.getForDisplay('h',h,'images.roi.Circle')
Accepted Answer
Kenta
on 3 Oct 2021
clear;clc;close all
I = imread('baby.jpg'); figure; imshow(I);
slashed=imread('slashC.png');
slashedSmall=imresize(slashed,[800 800]);
slashedSmall=repmat(slashedSmall,[1 1 3]);
roi = drawpoint;
x=round(roi.Position(1));
y=round(roi.Position(2));
[h,w]=size(slashedSmall,1:2);
I(x:x+h-1,y:y+w-1,:)=I(x:x+h-1,y:y+w-1,:)-slashedSmall;
figure;imshow(I)
こんにちは、@Atsushi Ueno さまのおっしゃるとおり、用意された関数でそれをクリックした場所に埋め込むのは難しいのかもしれませんね。そういうfile exchangeのコードもあるかもしれませんが。
例えばslashの入った画像を用意しておき、無理やり画像に重ね合わせるとそれっぽくなりました。
全く作りこめてないのでこれでは問題が多くありますが気にいっていただければここから改良してそれ用の関数を自作するのも良いかもしれません。
0 Comments
More Answers (0)
See Also
Categories
Find more on ROI ベース処理 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!