【OPENCV】关于Iplimage类中imagedata的问题....

zsfjericho 2010-04-16 12:26:02
我用cvloadimage读取一副图像,该图像像素只有0和255两个值,但是我用((uchar*)(img->imageData + img->widthStep*y))[x]读取图像数据并进行加减运算时却会出现255-255=1的情况,非常奇怪,所以想请教一下是不是因为((uchar*)(img->imageData + img->widthStep*y))[x]的类型的问题
...全文
406 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
峯为人高山 2011-09-14
  • 打赏
  • 举报
回复
逻辑与跟按位与意义可大不一样啊!
zsfjericho 2010-04-16
  • 打赏
  • 举报
回复
附上部分代码

img_temp是与img同样大小的初始值全为0的图像

首先是一个条件赋值
if ( (A>=2) & (A<=6) & (B==1) & (C==0) & (D==0) )
{
((uchar*)(img_temp->imageData + img_temp->widthStep*x))[y]=((uchar*)(img->imageData + img->widthStep*x))[y];
}

接着是相减运算
for( x=0;x<=(H-1);x++)
for( y=0;y<=(W-1);y++)
{
((uchar*)(img->imageData + img->widthStep*x))[y]=((uchar*)(img->imageData + img->widthStep*x))[y]-((uchar*)(img_temp->imageData + img_temp->widthStep*x))[y];
}
就是这个时候,img中的imageData会出现一些像素值为1的点,很奇怪
zsfjericho 2010-04-16
  • 打赏
  • 举报
回复
求解答!!!!
zsfjericho 2010-04-16
  • 打赏
  • 举报
回复
这个没问题的,都可以表示与,关键是图像像素点的类型是什么我不是很清楚
xiuxianshen 2010-04-16
  • 打赏
  • 举报
回复

if ( (A>=2) & (A<=6) & (B==1) & (C==0) & (D==0) )

这是什么意思,与操作,是不是要改成

if ( (A>=2) && (A<=6) && (B==1) && (C==0) && (D==0) )

19,468

社区成员

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

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