使用拉东变换检测线路
这个例子展示了如何使用拉东变换在图像检测。氡转换密切相关,一个共同的计算机视觉操作称为霍夫变换。您可以使用氡
霍夫变换的函数来实现形式用于检测直线。
计算图像的变换
读一个图像到工作区中。将它转换为灰度图像。
我= fitsread (“solarspectra.fts”);I =重新调节(我);
显示原始图像。
图imshow(我)标题(的“原始图像”)
计算一个二进制图像边缘使用边缘
函数。显示返回的二进制图像边缘
函数。
BW =边缘(I);图imshow (BW)标题(“原始图像的边缘”)
计算图像的变换,使用氡
函数。峰的位置变换对应于原始图像中直线的位置。
θ= 0:179;(R, xp) =氡(BW,θ);
显示拉东变换的结果。
图显示亮度图像(θ,xp, R) colormap(热)包含(“\θ(度)”)ylabel (“x ^{\ '}(从中心像素)”)标题(“R_{\θ}(x ^ {\ '})”)colorbar
解释拉东变换的山峰
计算θ和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)
有三个强大的山峰θ= 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)结束
也有两个强大的山峰θ= 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)结束