Matlab / OpenCV创建角度图像

时间:2014-03-01 22:26:22

标签: matlab opencv image-processing gradient

我遵循以下文件的指示(基本上只是第2页):

http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=05649943

如本文所述,我想做以下事情:

  1. 我有一张图片 - >提取脸部矩形
  2. 创建边缘图像(使用Canny)
  3. 创建距离图像(使用MatLab中的bwdist
  4. 创建角度图像
  5. 该过程如下所示:

    enter image description here

    并在此处描述:

    enter image description here

    我陷入第4步:创建角度图像。

    我正在使用Matlab创建角度图像:

    im = imread(['face_images/faces/' ims(i).name]);
    
    I = rgb2gray(im);
    
    [Gmag, Gdir]=imgradient(I);
    GdirI=(Gdir+180)*(255/360);
    
    imwrite(GdirI, ims(i).name);
    

    但我没有得到论文最后一行中出现的图像。我是否必须将边缘图像作为输入或原始图像?因为我现在正在使用原始图像......

1 个答案:

答案 0 :(得分:0)

当梯度幅度小时,边缘角度定义不明确。我通常会在幅度上设置一个阈值,并仅计算高于阈值的像素的角度。在你的情况下,你可能只计算了粗糙过滤器找到边缘的像素处的角度。