我要做的事: 扫描一张只有黑色和白色的8位单通道的灰度图像,扫描从左上角开始,
将白色的点的坐标存储到向量中。
采取的方法: vector<CPoint>Array;
IplImage *pImage=cvCreateImage(cvSize(a,b),8,1);
for(int i=0;i<b;++i)
for(int j=0;j<a;++j)
{
if(Image_vectorized->imageData[i*img_width+j]='*')
{ CPoint pt=CPoint(i,j);
Array.push_back(pt);
}
}
在IplImage 中 声明 imageData 是 char*类型,那么每一个像素点都对应一个字符,
那么白色的像素点对应的是什么字符呢? 黑色的呢? 或者是否有其他的方法可以判别
哪些是白色的像素点?
将白色的点的坐标存储到向量中。
采取的方法: vector<CPoint>Array;
IplImage *pImage=cvCreateImage(cvSize(a,b),8,1);
for(int i=0;i<b;++i)
for(int j=0;j<a;++j)
{
if(Image_vectorized->imageData[i*img_width+j]='*')
{ CPoint pt=CPoint(i,j);
Array.push_back(pt);
}
}
在IplImage 中 声明 imageData 是 char*类型,那么每一个像素点都对应一个字符,
那么白色的像素点对应的是什么字符呢? 黑色的呢? 或者是否有其他的方法可以判别
哪些是白色的像素点?
在VC中调试时发现, 黑色像素对应的字符是:0 '' ,白色像素对应的字符是 -1 'y' (这边的y上面还有两点,此处无法打出)。 不知道代表什么意思?
但是白色是 "-1" 其实就是十进制255,因为可能VC把它当做有符号的数在显示,所以内存中的16进制 “FF”,显示为-1了,其实就是十进制的255,呵呵。我不知道你怎么看显示的,如果用Hex格式的话,就可以看到了。
s=cvGet2D(src,i,j);
s.val[0]的值0对用黑色,255对应白色