图像处理与模式识别 matlab,图像处理 – 使用Radon变换进行MATLAB中的模式识别
正如@beaker所想,最大磁盘区域是由适合图像边界框内的最大填充圆定义的.你可以从文章的图3b)看到.使用边缘检测器边缘(灰色,“sobel”),而您应该使用梯度图或更正式的梯度大小.这是一个代码,它产生一个接近图3d所示的曲线.如何将其量化为六个峰值,仍然是一个问题.A = imread( 'Layer-5.png' ); % image from the articleA = double(
正如@beaker所想,最大磁盘区域是由适合图像边界框内的最大填充圆定义的.你可以从文章的图3b)看到.
使用边缘检测器边缘(灰色,“sobel”),而您应该使用梯度图或更正式的梯度大小.这是一个代码,它产生一个接近图3d所示的曲线.如何将其量化为六个峰值,仍然是一个问题.
A = imread( 'Layer-5.png' ); % image from the article
A = double(rgb2gray( A ));
% gradient magnitude
dx = imfilter(A,fspecial('sobel') ); % x, 3x3 kernel
dy = imfilter(A,fspecial('sobel')'); % y
gradmag = sqrt( dx.^2 + dy.^2 );
% mask by disk
R = min( size(A)/2 ); % radius
disk = insertShape(zeros(size(A)),'FilledCircle', [size(A)/2,R] );
mask = double(rgb2gray(disk)~=0);
gradmag = mask.*gradmag;
% radon transform
theta = linspace(0,180,180);
vars = zeros(size(theta));
for u = 1:length(theta)
[rad,xp] =radon( gradmag, theta(u) );
indices = find( abs(xp)
% ignore radii outside the maximum disk area
% so you don't sum up zeroes into variance
vars(u) = var( rad( indices ) );
end
vars = vars/norm(vars);
figure; plot( vars );
记住,从文章复制的图像与jpg文物一起出现.经过好的去噪(这里太多了),例如,

你会得到更加突出的结果.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)