对称物体在自然图像和合成图像中普遍存在。作为对称物体最重要的全局特征之一,对称性检测长期以来都是计算机视觉领域的研究热点,并在图片的语义提取、图像语义理解以及情感识别等任务上具有广泛的应用。对称物体的检测技术,就是将图片中所蕴含的对称目标信息提取出来。一般而言,具体可包含提取对称目标物体的位置、对称类别(如平移对称、旋转对称和反射对称等)及其所包含的几何信息,如反射对称的对称轴。
传统的对称性检测方法是以特征为中心的,顾名思义,这种方法是基于提取的一个图像特征或多个特征的。具体而言它首先计算出图像的普遍性特征表征(如 SIFT 特征),然后根据该特征的特性估计对称目标所需的参数。以特征为中心的方法的优点是方便快捷,无需在特征层面投入太多精力,第三方的特征表达就足以抽象出对图像的表征。然而,这类方法的缺点也很明显,就是需要去优化大量的已计算选出来的特征匹配对,这也是这类方法目前的主要解决的难点;而且值得注意的是,由于忽视的特征工程在对称性检测任务上的作用,特征的重要性和特殊性没有被考虑进入特征的构建中,导致了较低层次特色和较高层次的视觉检测任务之间的“语义鸿沟”被忽略了。
鉴于此,采用小波分析进行纹理和颜色反射对称性检测,运行环境为MATLAB R2018A,主运行代码如下:
- clc; clear all; close all; warning off;
- %%
- srcDir = './input';
- file = '832053.jpg';
- %%
- [~,name,~] = fileparts(file);
- img = imread([srcDir '/' file]);
- img = imresize(img,0.25);
- disp(['Processing : ' name]);
- tic;
- [SymOcLgHSV,voteMap] = symBilOurCentLogGaborHSV(img);
- toc;
- %%
- Num = 5;
-
- MarkerEdgeColors=hsv(Num);
- str = {};
- mkSize = 10;
- lnWidth = 2;
-
- figure;
- imshow(img); hold on;
- for j=1:min(Num,size(SymOcLgHSV,1))
- X = [SymOcLgHSV(j,1) SymOcLgHSV(j,3)];
- Y = [SymOcLgHSV(j,2) SymOcLgHSV(j,4)];
- plot(X,Y, '-s','Color',MarkerEdgeColors(j,:),...
- 'MarkerSize',mkSize,'LineWidth',lnWidth);
- str{j} = [num2str(j) ' - ' num2str(SymOcLgHSV(j,5))];
- end
- legend(str,'Location','BestOutside');
- hold off;
- %%
-
- 完整代码:https://mbd.pub/o/bread/ZZWWk55t
-
- figure,imagesc(voteMap); colormap('jet'); axis off;

