图像是背景是黑色的照片,虽然背景是黑色的,但是感觉背景还是有略微变化的。因为是暗场照片,所以物体本身也是比较暗的。就是想绘出图像和背景的边界。另外,图像中间有空,所以也有和背景的边界。因为是外行,所以先来问问。

解决方案 »

  1.   

    物体颜色与背景颜色相近,而且有空洞,所以用robert算子并不理想。
    根据实际问题,自己编写算法。
    你可以先将图像变换为灰度图(Y=1.0000R+4.5907G+0.0601B),然后获取整幅图像(而不是物体)的边缘灰度值,接着从图像的四边(假设你的图像是个标准的矩形)向中心逼近逐行逐列判断本行本列像素点的灰度值与前一行前一列或前几行前几列的平均灰度值之差是否达到足以将次行次列判定为边缘,随后将大于这个差值的像素点标记,并且停止这个像素点到中心的逼近(但是其他没有被标记的像素点到中心的方向仍然要逼近,直到这个方向的某个像素点被标记),这样的话,不管物体有没有空洞,边缘照样提取得出来。
    在以上算法思想中,从四边向中心逼近是一个技巧,差值的选定是一个关键,对已判断的像素点做标记并停止逼近是一个技巧。
      

  2.   

    我在想,是否可以先将图像进行二值化,然后再做图像的X轴与Y轴的投影,然后把投影上X,Y轴上连续投影的交点作为边界呢?拙见。中空的问题,因为投影是做取连续的,所以中空部份应该很容易分别出来的。
    突然还想到,你中间的图像是否为封闭的整体呢?也就是说多边形?如果不是,那不能适用这个方法,我是从人脸识别算法上想到的。