二值图像得小问题?(在线等)

lizilily 2004-09-02 04:08:24
我现在想得到二值图像的每一位的数据值,就是1或0吧,就是下面的代码
for(j=0;j<Height;j++)
{
for(i=1;i<Width;i++)
{
lpSrc=(LPBYTE)lpDIBBits+lLineBytes*(Height-j)+i/8;
pixel=(1<<(7-i%8))&(*lpSrc);
}
}
可是我在调试时发现在i循环到112之前pixel的值是0或是1,但是在112之后是38,56之类的值,我想问一下这是怎么回事?
再有就是二值图像的数据是0或1吧。我这样做对吗?pixel=1(黑)或是pixel=0(白);
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
微星1234 2004-09-02
  • 打赏
  • 举报
回复
还有点很重要, 图像是以4为边界的
如过图像宽度为14
那么要取(1,0)点的值就不能到第2个字节中取,
而要到第5个字节中找
微星1234 2004-09-02
  • 打赏
  • 举报
回复
这样更简单点:pixel=1&(*lpSrc)>>(7-i%8)
微星1234 2004-09-02
  • 打赏
  • 举报
回复
应该要这样把:pixel=((1<<(7-i%8))&(*lpSrc))>>(7-i%8)
lizilily 2004-09-02
  • 打赏
  • 举报
回复
我在画的时候读入一个矩形框的二值图像,然后想得到是黑时候的i,j值,然后按setpixel()作图

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧