图像象素

lizilily 2004-08-31 10:00:58
我想记录二值图像中为1的每一个象素,这只是第一行的,其他同,我得代码是这样
for(i=0;i<lWidth;i++)
{
lpSrc=(char*)lpDIBBits+lLineBytes*(lHeight-1)+i/8;
if(((1<<(7-i%8))&(*lpSrc))==1)//*****
记录i;
}
请问这能否记录每一位的值,也就是每一个象素的值,并且麻烦解释一下//***这句话,我怕想看看自己理解的对码?
...全文
78 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizilily 2004-08-31
  • 打赏
  • 举报
回复
不行吧,(char*)lpDIBBits这个指针是8位移动,当然lpSrc也是8位移了,怎么能得到每一个呢
wrcluomo 2004-08-31
  • 打赏
  • 举报
回复
for(i=0;i<lWidth*8;i++)
{
lpSrc=(char*)lpDIBBits+lLineBytes*8*(lHeight-1)+i;
if(*lpSrc==1)//*****
记录i;
}
wrcluomo 2004-08-31
  • 打赏
  • 举报
回复
for(i=0;i<lWidth*8;i++)
{
lpSrc=(char*)lpDIBBits+lLineBytes*(lHeight-1)+i;
if(*lpSrc==1)//*****
记录i;
}
这样如何?
lizilily 2004-08-31
  • 打赏
  • 举报
回复
你说的是灰度图像,是一个象素正好是一个字节,我要的是一个字节是8个象素的情况就是二值图像,这个时候应该移位进行得到每一个象素值,可是我不会进行这样的做法
wrcluomo 2004-08-31
  • 打赏
  • 举报
回复
可否这样?
for(i=0;i<lWidth;i++)
{
lpSrc=(char*)lpDIBBits+lLineBytes*(lHeight-1)+i;
if(*lpSrc==1)//*****
记录i;
}

19,469

社区成员

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

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