gpt4 book ai didi

matlab - 在 matlab 中选择一个 ROI(圆形和方形)以应用过滤器

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:35 28 4
gpt4 key购买 nike

我正在使用 matlab,我想像使用函数 roipoly 时那样进行交互式选择,但我想选择一个圆形或一个正方形。我已经在搜索用于选择感兴趣区域 (ROI) 的函数,就像您在使用 roipoly 时选择的那样,但使​​用的是圆形或正方形,但我找不到任何东西。

有什么建议吗?

我已经尝试过使用 ginput。

[X, Y]= ginput(2)

xmin=min(X)
xmax=max(X)
ymin=min(Y)
ymax=max(Y)

在这段代码中,我定义了正方形的角(用户使用 ginput 定义了两个点)。但是当我检查图像的点时,它们是错误的。我认为是因为图上的图形大小不一样。

选择我想要的 ROI 的最佳方法是使用与 roipoly 类似的函数,但用于圆形和正方形,而不是多边形。使用这种类型的功能,我只能使用“ginput”选择图片内部的点,如果用户选择图形之外的任何点,我必须输入错误消息(问题是它们不匹配,我可以选择的点大于图像的大小)。

最佳答案

这里确实有两个问题:

1) 你的 GINPUT 代码有什么问题和2) roiCircle或roiSquare如何写

在回答(1)时,没有错;该代码的行为应该是这样的:

imgData = randn(100);
imagesc(imgData );
[X, Y]= ginput(2)

xmin=min(X);
xmax=max(X);
ymin=min(Y);
ymax=max(Y);

squareX = [xmin xmin xmax xmax xmin];
squareY = [ymin ymax ymax ymin ymin];
hold on;
plot(squareX,squareY); %plot the correct square
hold off;

您可以使用 IMCROP 获取数据:

width = xmax - xmin;
height = ymax - ymin;
imgSelect = imcrop(imgData,[xmin,ymin,width,height]);
figure; imagesc(imgSelect);

至于 (2)(编写 roiCircle 或 roiSquare),以便它们像 roiPoly 一样很好地更新,这些将需要大量(尽管不是不可克服的)MATLAB GUI 编程。它易于处理,但并非微不足道。

关于matlab - 在 matlab 中选择一个 ROI(圆形和方形)以应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13840777/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com