【简化版蒙板扣图】带你轻松走进OPENCV蒙板扣图的世界

蒙板扣图的学习目标:

图像素材:
在这里插入图片描述

本操作适用图片:

-前景清晰,背景模糊的原始图片


自定义库:

把OPENCV中的干扰理解的部分,制作成独立的库文件,这样学友们就可以轻松的理解蒙板扣图的真正含义。

自定义的方法名称:

  1. show2img:可以同时显示两种图片img,mask的类方法。
  2. imrd() 方法可以获取原图
  3. contourShape.findContours()通过寻找轮廓方法获取三个返回值

蒙板扣图原理:

掩模图像M中只有两种值:一种是数值0,另外一种是数值255。
255

  • 得到的轮廓白色轮廓图:
    在这里插入图片描述
    轮廓中白色部分:255r的值,对应到img原图位置的所有像素点都会显示,如图:
    在这里插入图片描述

完整代码:

from img_pakage.ocv import imrd,contourShape,show_img,show2img
import numpy as np
import cv2

'''
分析图像:
    因为图像是一个背景和前景区分比较明显的图形,背景模糊而前景清晰,所以适合使用二值分割,加轮廓提取的办法。
原理:
    1、生成一个全黑的0数组底图,然后使用绘制全部轮廓的方法,绘制一个纯白轮廓图。(值:255)
    2、利用bitwise_and(img,mask) 使用蒙板进行原图img中蒙板部分提取(原理:值为255部分显示图像,其它隐藏)
    
'''
img_path = f'../img/exam_flower.png' #图片文件本地路径
img = imrd(img_path) #通过读取数据,获取原图
binary,cnt,hie = contourShape.findContours(img_path) #通过轮廓命令获取二值图,轮廓图,层级列表
mask = np.zeros(img.shape,np.uint8) #通过全0数组获取与图像等大蒙板
mask = cv2.drawContours(mask,cnt,-1,(255,255,255),-1) # 把全部轮廓(cnt)(-1)通过绘制,进行填充绘制(-1:尾部)然后输出到蒙板mask。
loc = cv2.bitwise_and(img,mask)

show2img(mask,loc)

制作体会:

  1. 代码简洁,学习者不容易晕。
  2. 解释通俗易懂,学习者容易理解。
  3. 需要原库函数代码,请大家留言。
OpenCV羽化是通过对像进行处理来实现像的边缘平滑过渡效果。首先,需要创建一个与原始像相同大小的像。像中的像素值可以根据需要设置为0到255之间的灰度值。接下来,使用OpenCV的filter2D函数将应用于原始像。这将对像进行卷积操作,根据像中的像素值对像中的每个像素进行加权平均。加权平均的程度由像中的像素值确定,即较大的像素值会使得对应位置的像素更多地参与平均计算,从而实现平滑过渡的效果。最后,将结果像保存到指定路径即可。 羽化主要用于像编辑、特效处理等领域。例如,在人脸美化处理中,可以使用羽化技术来平滑人脸边缘,使得整个像看起来更自然。此外,在像合成中,也可以使用羽化技术来将不同像进行平滑过渡,使得合成结果更加真实。 使用OpenCV进行羽化处理时,需根据具体需求设置像的像素值,以达到最佳效果。在处理过程中,也可以通过调整像的模糊程度、卷积核尺寸等参数来改变羽化效果。通过不断调试和观察结果,可以找到最适合的参数配置,从而获得理想的羽化效果。 总的来说,OpenCV羽化是一种常用的像处理技术,可以实现像间的平滑过渡效果,广泛应用于像处理、像编辑等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值