现有一灰阶(8位)图片,想转一个黑白图片,要求80以下为黑,80以上为白.求算法,急...............
现有一灰阶(8位)图片,想转一个黑白图片,要求80以下为黑,80以上为白.求算法,急...............
dwBufsFile = GetFileSize (hFilebTW, &dwHighSizebTW) ;
hfb = CreateFileMapping(hFileb, NULL,PAGE_READWRITE,0,dwBufsFileb ,NULL);
lpData = (LPBYTE)MapViewOfFile(hfb, FILE_MAP_WRITE,0,0,0);
等等...........
[最优解释]
void seg(unsigned char*src, unsigned char*dst,int t)
{
int i = 0, j = 0;
int wide = src->widthStep;
int high = src->height;
int t;
for (j = 0; j < high; j ++)
{
q = (unsigned char *)(dst->imageData + j * wide);
p = (unsigned char *)(src->imageData + j * wide);
for (i = 0; i < wide; i++)
{
q[i] = p[i] >= t ? 255 : 0;
}
}
}
这里t的值你设为80即可
[其他解释]
这就是标准的二值化
双重循环读取当前像素,如果小于80置为0,大于80置为255
[其他解释]
自己UP!!