主要内容

使用拉东变换检测线路

这个例子展示了如何使用拉东变换在图像检测。氡转换密切相关,一个共同的计算机视觉操作称为霍夫变换。您可以使用霍夫变换的函数来实现形式用于检测直线。

计算图像的变换

读一个图像到工作区中。将它转换为灰度图像。

我= fitsread (“solarspectra.fts”);I =重新调节(我);

显示原始图像。

图imshow(我)标题(的“原始图像”)

图包含一个坐标轴对象。标题为原始图像的坐标轴对象包含一个类型的对象的形象。

计算一个二进制图像边缘使用边缘函数。显示返回的二进制图像边缘函数。

BW =边缘(I);图imshow (BW)标题(“原始图像的边缘”)

图包含一个坐标轴对象。坐标轴对象与标题原始图像边缘包含一个类型的对象的形象。

计算图像的变换,使用函数。峰的位置变换对应于原始图像中直线的位置。

θ= 0:179;(R, xp) =氡(BW,θ);

显示拉东变换的结果。

图显示亮度图像(θ,xp, R) colormap(热)包含(“\θ(度)”)ylabel (“x ^{\ '}(从中心像素)”)标题(“R_{\θ}(x ^ {\ '})”)colorbar

图包含一个坐标轴对象。坐标轴对象与标题R indexOfθ基线空白(x toThePowerOf '基线)包含一个类型的对象的形象。

解释拉东变换的山峰

计算θx '五大偏移值峰值。的xp_peak_offset值代表的峰值的抵消的中心形象,以像素为单位。

R_sort =排序(独特的(R),“下”);[row_peak, col_peak] =找到(ismember (R, R_sort (1:5)));xp_peak_offset = xp (row_peak);theta_peak =θ(col_peak);

添加一个x在原始图像的中心标记。一个图像映射到的行索引y -方向,和列映射x -方向,所以计算centerX一半的列数centerY在图像的行数的一半

centerX =装天花板(大小(我,2)/ 2);centerY =装天花板(大小(我,1)/ 2);图imshow(我)散射(centerX centerY 50,“软”线宽= 2)

图包含一个坐标轴对象。坐标轴对象包含2图像类型的对象,散射。

有三个强大的山峰θ= 1度和偏移量的-80、-84和-87像素的中心。情节的径向线穿过中心的角θ作为一个红色虚线= 1度。代表了氡作为固体垂直于虚线红线,-80年了,-84年,和-87像素的中心位置向左。

(x1, y1) = pol2cart(函数(1),5000);情节([centerX-x1 centerX + x1]、[centerY + y1 centerY-y1],“r——”线宽= 2)[x91 y91] = pol2cart(函数(91),100);我= 1:3情节([centerX-x91 + xp_peak_offset (i) centerX + x91 + xp_peak_offset (i)),[centerY + y91 centerY-y91),“r”线宽= 2)结束

图包含一个坐标轴对象。坐标轴对象包含6类型的对象形象,散点、线。

也有两个强大的山峰θ= 91度,与补偿8和-44像素的中心。情节的径向线穿过中心的角θ= 91度作为一个绿色虚线。氡的峰值表示为固体绿线是垂直的虚线,和转移8和-44像素中心位置。

情节([centerX-x91 centerX + x91], [centerY + y91 centerY-y91),“g——”线宽= 2)我= 4:5情节(centerX-x1 centerX + x1),[centerY + y1-xp_peak_offset (i) centerY-y1-xp_peak_offset (i)),“g”线宽= 2)结束

图包含一个坐标轴对象。坐标轴对象包含9图像类型的对象,散点、线。

另请参阅

||

相关的话题