2016/7/17
在分割图像中,经常会对图像进行差分处理再进行分割,那么对于一个输入的带有导管信息的差分图像(如图所示),该如何分割出导管信息呢,方法是构造灰度密度图像进行分割。具体步骤和实现效果容我慢慢道来。
1、 输入一个差分图像
2、 对该差分图像的每条边界扩充10个像素点,扩充像素点的像素值设置为0;
遍历图像,记灰度最大值为Max。这里我自己写的扩充边界的函数,同时统计灰度最大值。还可以使用函数copyMakeBorder();不过该函数的接口是Mat型的,参数较为复杂。使用IplImage* 图像格式的时候记得转换。
3、 构造一个21*21的模板,从像素点(10,10)开始遍历新图像,统计模板内灰度值大于0.5*Max的像素点的数目,将其转化为(0-255)之间,构造灰度密度图像。
4、 对灰度密度图像进行二维Otsu阈值分割,得到分割后的导管图像。
源码如下:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
double max_pixel=0;
double count_pixel(int i,int j,IplImage* a);
int cvOtsu2D(CvMat *pGrayMat) ;
/*扩展边界*/

本文介绍了如何使用灰度密度图像进行导管信息的分割。首先,对差分图像的边界扩充10个像素点并设置值为0。接着,构建21*21的模板,统计灰度值大于0.5*Max像素点数量并转化为0-255范围。然后,通过二维Otsu阈值分割得到导管图像。提供的源码详细展示了实现过程。
最低0.47元/天 解锁文章
418

被折叠的 条评论
为什么被折叠?



