图像腐蚀
/*
*
*本程序 由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++)


