大家好,说到做到,今天更新第二篇。我给大家带过来的这一系列文章主要与
常用图像处理算法为主,主要以C语言编写。每天只会放上一种处理方法,
有兴趣的朋友可以跟上。代码都是经过验证的保证正确,有什么问题或想法就给我
评论或留言吧,需要你的鼓励。
今天给大家带来的是灰度图像的 二值化
首先我们 默认全局变量为 HEIGHT(图片高度),WIDTH(图片宽度)
之后
宏模块定义
#define HIGHT 255
#define LOW 0
#define BYTE unsigned char
在执行二值化函数之前
应该保证给输出申请一个空间
例如 BYTE *brand_out;
brand_out=(BYTE *)malloc(WIDTH*HEIGHT*sizeof(BYTE));
之后就可以调用 gray2brand(gray,brand_out,T);
gray2brand(BYTE *grayin,BYTE *out,int thresh)原型为
/*****************************************
*功能:灰度图像的二值化
*参数:grayin 为指向灰度图像数据的指针
out为指向处理完后二值化图像数据指针
thresh 为阀值(大于阀值的为HIGHT,否则为:LOW)
*返回值:无
*******************************************/
gray2brand(BYTE *grayin,BYTE *out,int thresh)
{
int i;
int j;
for(i=0;i<HEIGHT;i++)
for(j=0;j<WIDTH;j++)
{
if(*(grayin+i*WIDTH+j)>=thresh)
{
*(out+i*WIDTH+j)=HIGHT;
}
else
{
*(out+i*WIDTH+j)=LOW;
}
}
}
这次就到这里了,就是这么短,这么简单,至于你信不信,反正我信了。