使用opencv进行图像的二值化处理时有下面这样一段代码,我不太理解,大家可以给我逐行解释一下吗?谢谢!

for(i=0;i<height;i++)for(j=0;j<width;j++)for(k=0;k<Channels;k++){if(data0[i*step+j+k]... for(i=0;i<height;i++)
for(j=0;j<width;j++)
for(k=0;k<Channels;k++)
{
if(data0[i*step+j+k]>thresh)
data1[i*step+j+k] = 255;
else
data1[i*step+j+k] = 0;
}
展开
 我来答
也打机27
2013-05-08
知道答主
回答量:31
采纳率:0%
帮助的人:29.2万
展开全部
这个就是用三个循环,按照图片高,宽,和通道的顺序去判断每个像素值是否大于某个阈值,如果大于阈值,则设置为255(也就是白),否则就就设置为0(也就是黑)。

图片的高宽不需要解释,图片的通道常见的就是RGB。
for(i=0;i<height;i++)
for(j=0;j<width;j++)
for(k=0;k<Channels;k++)\\RGB 的话,Channels可能是3,或者4。opencv习惯4个通道,但是最后
\\ 一个通道没用
{
if(data0[i*step+j+k]>thresh)\\ 这个就是判断data0这个里面第i行,j列那个像素第k个通道的值是否大
\\于该阈值
data1[i*step+j+k] = 255;
else
data1[i*step+j+k] = 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式