我需要为我的项目生成功能图。首先,我需要获取输入图像并将其转换为强度图像。然后根据标准偏差进行边缘检测。
然后我必须计算水平和垂直投影,然后我必须生成特征图。我写了下面的代码。
in_img=imread('ball.png');
yuv=rgb2hsv(in_img);
c=yuv(:,:,3); % i have used hsv conversion in hsv v channel gives intensity image
edge1=edge_std(c); %edge_std is based on the standard deviation formula given in the
%paper
ver=imfilter(edge1,[-1 0 1]);
%ver=sum1(edge1,1);
%hor=sum(edge1,2);
hor=imfilter(edge1,[-1 0 1]');
h_mean=mean2(hor);%horizontal threshhold
v_mean=mean2(ver);%vertical threshhold
hor(hor>=h_mean)=1;
ver(ver>=v_mean)=1;
bw=imadd(hor,ver);
imshow(bw),title('feature map');
上面代码的输出是这个
但是这个输入图像的特征图应该如下所示
以上边缘图像生成上面的特征图
有谁能告诉我这里出了什么问题。我的功能图生成错了吗?如果是,那么如何生成要素图?我怎样才能获得上面的输出?
请参阅以下算法。我不知道什么是特征映射以及如何生成它。我被困在特征地图生成中。
以下算法来自一篇论文。他们已经展示了该球图像的实验结果。
即使是来自该纸张的球形图像,我也只使用了打印屏幕并将其保存为.png图像并在我的代码中使用它。
请告诉我这个算法中的特征映射是什么以及如何生成它?输入是什么?它是类(二进制,灰度等)
我的代码中水平投影和垂直投影也是正确的吗?
当阈值水平和垂直投影结果将成为二进制图像时。那么我应该将像素设置为低于阈值0并保持其他像素不变,因此它将保持为灰度图像吗?