图像腐蚀

/*

*

*本程序 由www.51wendang.com编写

*如若转载 请注明 出自 www.51wendang.com

*/

#include "stdafx.h"

#include "cv.h"

#include "highgui.h"

#include "cxcore.h"





int main(int argc, char* argv[])

{



#if 1

//创建原图像

IplImage* src=cvCreateImage(cvSize(11,10),8,1);



//创建图像 用于保存腐蚀的结果

IplImage* dst = cvCreateImage(cvGetSize(src),8,1);



//将图像清零

cvZero(dst);

cvZero(src);





//下面的代码 是将 源图像赋初始值

int x,y;



//(1,6)-->(1,9)

//(2,6)-->(2,9)

//(3,6)-->(3,9)

for( y=1;y<4;y++)

{

for(x=6;x<10;x++)

{

cvSetReal2D(src,y,x,255);

}

}



//(4,4)-->(4,7)

//(5,4)-->(4,7)

for(y=4;y<6;y++)

{

for(x=4;x<8;x++)

{

cvSetReal2D(src,y,x,255);

}

}



//(6,1)-->(6,7)

for(x=1;x<8;x++)

{

cvSetReal2D(src,6,x,255);

}



//(7,1)-->(7,4)

//(8,1)-->(8,4)

for(y=7;y<9;y++)

{

for(x=1;x<5;x++)

{

cvSetReal2D(src,y,x,255);

}

}

/*

cvSetReal2D(src,0,0,1);

cvSetReal2D(src,0,1,2);

cvSetReal2D(src,1,0,3);

cvSetReal2D(src,1,2,4);

*/



//输出源图像

printf("src is \n");

for(y=0;y<src->height;y++)

{

for(x=0;x<src->width;x++)

{

float value = cvGetReal2D(src,y,x);



printf("%3d ",(int)(value));

}

printf("\n");

}



//声明结构元素变量

IplConvKernel * element =0;



//结构元素的取值情况

int values[16]={ 0,0,0,0,

0,0,1,0,

0,1,1,0,

0,0,0,0

};





//声明结构元素的列数 行数 锚点坐标

int cols =4 ,rows = 4 , anchor_x = 2 ,anchor_y =2;



//创建结构元素

element = cvCreateStructuringElementEx(cols,rows,anchor_x,anchor_y,CV_SHAPE_CUSTOM,values);



//使用自定义结构元素 对图像进行腐蚀

cvErode(src,ds


t,element,1);



//输出腐蚀的结果

printf("dst is \n");

for(y=0;y<dst->height;y++)

{

for(x=0;x<dst->width;x++)


图像腐蚀相关文档

最新文档

返回顶部