这篇主要写图像的二值化处理,图像二值化是指将图像的像素点只有两种情况,0和255,基本思路是先将图像灰度化,这里就不详细讲解了,在我的上一篇里有详细代码,接下来就是对灰度图像的处理。现在从最简单的情况开始,二值化就是要选取一个阈值,这里打个比方阈值是200,灰度值大于200的灰度值令为255,灰度值小于200的令其灰度值为0。
这里我先给出最简单的代码,这里的阈值是凭自己的感觉设置的:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
int image[1500][1000];
IMAGE img1;
int imagHight,imagWidth;
int threshold = 0;//阈值
int main()
{
int i,j,k;
// 读取图片至绘图窗口
loadimage(&img1, _T("D:\\testh.bmp"));
imagHight = img1.getheight();
imagWidth = img1.getwidth();
total = imagHight*imagWidth;
initgraph(imagWidth,imagHight, SHOWCONSOLE|NOCLOSE|NOMINIMIZE);
putimage(0, 0, &img1);
DWORD* pMem = GetImageBuffer();
//图像灰度化
for(i = 0; i <imagHight; i++)
{
for(j=0;j<imagWidth;j++)
{
*pMem = BGR(*pMem);
image[