主要内容

创建图像比较工具使用roi

这个例子展示了如何使用新的ROI函数来创建一个交互式图像比较工具。在处理图像时,我们经常需要从视觉上评估函数对图像的影响。有些效果是可以清晰区分的,比如边缘过滤器。但有些影响更为微妙,需要进一步观察。

将样本图像读取到工作区中

将示例图像读入工作区,然后创建图像的灰度版本。使用imshowpair命令功能查看两张图片。的蒙太奇选项显示图像并排。

我= imread (“peppers.png”);imgray = rgb2gray (im);图;imgray imshowpair (im,“蒙太奇”

使用ROI,设置两个叠加图像的alpha层(透明度),使一个图像仅在ROI内显示。这个选择性视图遵循ROI,因此可以交互地移动它。创建一个新图形和一个坐标轴。

hFigure =图();hax =轴(“父”, hFigure);

在相同的轴上堆叠两个图像。

hImage1 = imshow (im,“父”, hax);drawnow;%确保图像被绘制。持有;hImage2 = imshow (imgray,“父”, hax);持有

在坐标轴上创建一个圆形的ROI。

centerLocation = [220,100];半径= 60;hC = images.roi.Circle (...“父”hax,...“FaceAlpha”0,...“中心”centerLocation,...“半径”、半径);

创建一个监听器,监听ROI位置的变化(圆圈)。updateAlpha函数在本例的最后定义。

addlistener (hC,“MovingROI”, @updateAlpha);

第一次手动执行回调

updateAlpha (hC)

模拟放大到一个区域。

hC.Parent.XLim = [75 370];cc . parent . ylim = [0 205];

此文件包含实现此图像比较工具的函数的源代码。这段代码监听两个额外的事件。当用户输入“t/ t”键时,切换哪个图像在上面。该代码还侦听鼠标滚轮以增加或减少ROI的半径。

编辑helperImageComparer

使用工具的动画

回调函数更新Alpha层

回调函数在ROI对象移动时更新alpha层。

函数updateAlpha(hC, ~) hImages = findobj(hC, ~)父母,“类型”“图像”);%从圆形ROI创建BW蒙版掩码= hC.createMask (hImages (1) .CData);%设置alpha数据,以便底层图像显示通过%只在圆圈内集(hImages (1),“AlphaData”~面具);结束

另请参阅

||

相关的话题