必采纳,可是这个0.0086给自己取一个号并说明意思所取的中点值偏大,不应该往小了选吗怎么可能选择更大的1.2656

一线数学老师历任年级主任、數学教研组组长,教学方法新颖独特

一线数学老师历任年级主任、數学教研组组长,教学方法新颖独特

在OpenCV中我们经常会遇到一个名字:Mask(掩碼)很多函数都使用到它,那么这个Mask到底什么呢
比如要对一幅图进行抠图操作,这就要用到Mask了那么以抠图为例,解释Mask在里面的作用該程序的功能就是抠出指定区域。

注意程序中的这两句关于Mask的操作:

第一步建立与原图一样大小的mask图像并将所有像素初始化为0,因此全圖成了一张全黑色图 第二步将mask图中的r1区域的所有像素值设置为255,也就是整个r1区域变成了白色。

注意这句哪个图像拷贝到哪个图像?

原始圖image拷贝到目的图img2上
其实拷贝的动作完整版本是这样的:

原图(image)与掩码(mask)进行与运算后得到了结果图(img2)

何为图与掩码的与运算?

其实就是原圖中的每个像素和掩码中的每个对应像素进行与运算比如1 & 1 = 1;1 & 0 = 0;

比如一个3 * 3的图像与3 * 3的掩码进行运算,得到的结果图像就是:
mask就是位图来選择哪个像素允许拷贝,哪个像素不允许拷贝如果mask像素的值是非0的,我就拷贝它否则不拷贝。因为我们上面得到的mask中感兴趣的区域昰白色的,表明感兴趣区域的像素都是非0而非感兴趣区域都是黑色,表明那些区域的像素都是0一旦原图与mask图进行与运算后,得到的结果图只留下原始图感兴趣区域的图像了也正如下图所示。


下面两句代码所做的事情跟上面的差不多首先将原始图image拷贝一份给img3,然后img3将mask皛色区域设置为0(黑色)好比如果mask中像素非0的,我就把我图像对应的那个点的像素值设置为0否则啥也不做 。


如果想要直接抠出目标区域直接这样写:

我要回帖

更多关于 来取说明 的文章

 

随机推荐