图像处理 - 用MATLAB中的Radon变换进行模式识别

Use*_*404 10 matlab pattern-recognition image-processing

我试图提取Radon Signature以识别衣服的图案(条纹,格子图案,不规则和无图案),如1所示.

要实现的算法:

 1. Use sobel operator to compute the gradient map as f(x,y).
 2. Perform Radon transform based on maximum disk area.
 3. Compute the variance of r under all theta directions.
 4. Employ L2-norm to normalize the feature vector.
 5. Plot Radon Signature as a bar chart of var(r) for all theta values.
Run Code Online (Sandbox Code Playgroud)

我做了以下事情:

img = imread('plaid.jpg');
grey = rgb2gray(img);
img2 = edge(grey, 'sobel');
vararray=zeros(1,size(theta,2));
theta = -89:90;
for j = 1: size(theta,2)
     [R3,xp3] = radon (img2,theta(j));
     vararray(j) = var(R3);
end
vararray = vararray/norm(vararray);
figure(1), bar(theta,vararray),title('Radon Signature');
Run Code Online (Sandbox Code Playgroud)

我相信我的错误在于前两步.我不确定如何仅在最大磁盘区域上执行Radon.

我的结果显示在右侧,而文章(下面引用)显示在左侧.

结果图像(左:文章结果,右:我的Matlab结果 输入图像

但是,我的结果应该至少显示2个不同的峰,如acticle的结果所示,但他们没有.

任何帮助表示赞赏.

算法来源:"视障人士的辅助服装模式识别",杨晓东,IEEE学生会员,帅帅,田英利,IEEE高级会员

mai*_*ual 2

正如 @beaker 所想,最大磁盘区域是由适合图像边界框的最大实心圆定义的。您可以从文章的图 3 b) 中观察到。

你做错的另一件事是使用边缘检测器,edge(grey, '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)<R );
    % 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 );
Run Code Online (Sandbox Code Playgroud)

请记住,从文章中复制的图像会以 jpg 格式出现。经过良好的去噪(这里有点太多),例如,

去噪图像

你会得到更显着的结果。