主题:[讨论]二值化图像的坐标
有那位大虾给指点一下,对于二值化图像怎么能把像素是255的像素点的坐标给提取出来呀!
就是说怎么样把255图像的像素坐标点给记录在一个数组中呀!这个问题郁闷啦我好久呀!
/*************************************************************************
* 函数名称:
* ThresholdTrans()
* 参数:
* LPSTR lpDIBBits - 指向源DIB图像指针
* LONG lWidth - 源图像宽度(象素数)
* LONG lHeight - 源图像高度(象素数)
* BYTE bThre - 阈值
* 返回值:
* BOOL - 成功返回TRUE,否则返回FALSE。
************************************************************************/
BOOL CDibImage::ThresholdTrans(LPSTR lpDIBBits, LONG lWidth, LONG lHeight,AX[],BX[])
{
unsigned char* lpSrc; // 指向源图像的指针
LONG i; // 循环变量
LONG j;
LONG lLineBytes; // 图像每行的字节数
lLineBytes = WIDTHBYTES(lWidth * 8);// 计算图像每行的字节数
for(i = 0; i < lHeight; i++) // 每行
{
for(j = 0; j < lWidth; j++) // 每列
{
// 指向DIB第i行,第j个象素的指针
lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;
if ((*lpSrc) =255) // 判断是否小于阈值
{
AX[i]=i;
AY[j]=j;
}
} }
}
return TRUE;
}
有知道那里错的给指点一下呀!小弟在这里不胜感激呀!!
就是说怎么样把255图像的像素坐标点给记录在一个数组中呀!这个问题郁闷啦我好久呀!
/*************************************************************************
* 函数名称:
* ThresholdTrans()
* 参数:
* LPSTR lpDIBBits - 指向源DIB图像指针
* LONG lWidth - 源图像宽度(象素数)
* LONG lHeight - 源图像高度(象素数)
* BYTE bThre - 阈值
* 返回值:
* BOOL - 成功返回TRUE,否则返回FALSE。
************************************************************************/
BOOL CDibImage::ThresholdTrans(LPSTR lpDIBBits, LONG lWidth, LONG lHeight,AX[],BX[])
{
unsigned char* lpSrc; // 指向源图像的指针
LONG i; // 循环变量
LONG j;
LONG lLineBytes; // 图像每行的字节数
lLineBytes = WIDTHBYTES(lWidth * 8);// 计算图像每行的字节数
for(i = 0; i < lHeight; i++) // 每行
{
for(j = 0; j < lWidth; j++) // 每列
{
// 指向DIB第i行,第j个象素的指针
lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;
if ((*lpSrc) =255) // 判断是否小于阈值
{
AX[i]=i;
AY[j]=j;
}
} }
}
return TRUE;
}
有知道那里错的给指点一下呀!小弟在这里不胜感激呀!!