这是一张脑部的图片,中间的稍微亮一点的区域。有没有比较好的办法把分割出来? 
图片是一张512x512像素,可以下载。   

解决方案 »

  1.   

    不好意思,这张图片有点问题。原图在:
    http://p.blog.csdn.net/images/p_blog_csdn_net/jeff994/EntryImages/20090402/hard.jpg
      

  2.   

    图像求导, 再按threshold提取可能能行如果总是直线得画, 可以先求导然后按照huff变换也许能符合你要求。
      

  3.   

    楼主的要求有点像ps的魔棒。
    像6楼说的,取某个像素点的颜色值,自己定个允许的波动范围,和像素点连续相连的像素颜色值符合波动范围则这个点加入图像取值范围。
    a,b,c三点。b和a连,c和b连.c,b都在相对a的波动范围都是。
    a,b,c,d四点。如果d在相对a的波动范围,但是和a,b,c都不相连则d不是.
      

  4.   

    楼主需要的恐怕是边缘检测 我稍微试了试: 效果如下:上面这个图式提取边缘
    上面这个图中的各个紫色点在检测是已知的 因为这些点本身就是我自己用代码画上去的
    那个大椭圆就不要管了 是我自己程序里面要用到的
    这些紫色的小点连接(直线就可以)起来 就应该能去除这个中间的图形了。
    我用的是OpenCV:
    具体可以参考:http://www.opencv.org.cn/index.php/%E8%BD%AE%E5%BB%93%28contour%29%E6%A3%80%E6%B5%8B2
    里面的cvFindContours函数就是找到边缘提取后图像中的连续边缘的 而这个连续的边缘 又可以被提取成一个点序列 也就是上面那些紫色的点。
      

  5.   

    从0-255,以每个灰度值i作为一个分割线,对整个图像进行分割,然后对<i和>i的所有像素点分别作聚类运算,假如某一区域灰度>i和<i的点分别形成的聚类面积(二值化并做连通区域面积运算?)比最为接近,那么便能将区域分离
      

  6.   

    建议大家尝试下。 
    假如某一区域灰度>i和 <i的点分别形成的聚类面积(二值化并做连通区域面积运算?)比最为接近,那么便能将区域分离?
    这句话不是很明白。情具体点解释下。 注意噢,我并不是要把图片分成2个区域. 而是是要把中间的区域找出来。
    如果只是简单的找阀值,有很多办法的,比如说kmeans, ktsu, fcm之类的。  
      

  7.   

    我觉得建立合适的阀值能解决这个问题啊,如下图所示是阀值为80的分割结果,
    黑色小于80,白色大于80,从图中看,上半部分确实存在一个最大面积的独立连通区域,
    所以对于不同的阀值,只要在合适的区域(图中人脑上半部),能够找到一个最大面积>xx的白色连通区域,
    不就相当于找到了lz需要的区域?