当前位置: 首页 > wzjs >正文

企业免费网站系统下载地址在线工具seo

企业免费网站系统下载地址,在线工具seo,企业管理系统哪家好,提升学历的好处有哪些掩码实现图片抠图 目录 掩码实现图片抠图1 掩码1.1 概念1.2 创建掩码1.3抠图思路 2 代码测试 1 掩码 1.1 概念 掩码(Mask)是一种用于指定图像处理操作区域的工具。掩码通常是一个与图像尺寸相同的二值图像,其中像素值为0表示不处理&#xff…

掩码实现图片抠图

目录

  • 掩码实现图片抠图
    • 1 掩码
      • 1.1 概念
      • 1.2 创建掩码
      • 1.3抠图思路
    • 2 代码测试

1 掩码


1.1 概念

掩码(Mask)是一种用于指定图像处理操作区域的工具掩码通常是一个与图像尺寸相同的二值图像,其中像素值为0表示不处理,像素值为255(或1)表示处理。掩码可以用于多种操作,如图像滤波、图像合成、图像分割等。掩码的尺寸必须与图像的尺寸相同。掩码的像素值通常为0或255(或1),但也可以是其他值,具体取决于应用场景。通过使用掩码,可以更精确地控制图像处理操作的范围,从而实现更复杂的效果。

1.2 创建掩码

  • mask = np.zeros((height, width), dtype=np.uint8),创建一个全黑的掩码
    • (height, width), 高宽
    • dtype=np.uint8 ,数据类型
  • cv2.rectangle(mask, (x1, y1), (x2, y2), 255, -1),在掩码上绘制矩形
    • (x1, y1), (x2, y2)起点和对角线坐标 ,
    • 255颜色, -1表全填充
import cv2
import numpy as np
# 创建一个全黑的掩码
mask = np.zeros((300, 300), dtype=np.uint8)
# 在掩码上绘制一个白色矩形
cv2.rectangle(mask, (50, 50), (100, 100), 255, -1)
cv2.imshow('mask',mask)
cv2.waitKey(0)

运行如下
在这里插入图片描述

1.3抠图思路

  • 图像读取与预处理
    读取图像并转换为灰度图,进行高斯滤波以减少噪声。

  • 边缘检测
    使用Canny算法检测图像中的边缘。

  • 轮廓检测与排序
    查找图像中的轮廓,并根据面积进行排序

  • 二值化处理
    对灰度图进行二值化处理,确定阈值。

  • 轮廓筛选
    根据轮廓的宽度、高度和宽高比筛选出符合条件的轮廓。

  • 掩码操作
    在掩码上绘制筛选后的轮廓,并对原图像和掩码进行与操作,以提取区域。

2 代码测试

原图

在这里插入图片描述

代码展示:

import numpy as np
import cv2# 定义一个函数用于显示图像,并等待用户按下任意键关闭窗口
def cv_chow(name, img):cv2.imshow(name, img)cv2.waitKey(0)# 定义一个函数用于对四个点进行排序,返回一个有序的矩形顶点列表
def order_points(pts):rect = np.zeros((4, 2), dtype="float32")s = pts.sum(axis=1)  # 计算每个点的x和y坐标之和rect[0] = pts[np.argmin(s)]  # 最小的和为左上角rect[2] = pts[np.argmax(s)]  # 最大的和为右下角diff = np.diff(pts, axis=1)  # 计算每个点的x和y坐标之差rect[1] = pts[np.argmin(diff)]  # 最小的差为右上角rect[3] = pts[np.argmax(diff)]  # 最大的差为左下角return rect# 定义一个函数用于对轮廓进行排序,支持从左到右、从右到左、从上到下、从下到上四种排序方式
def sort_contours(cons, method='left-to-right'):reverse = Falsei = 0if method == 'right-to-left' or method == 'bottom-to-top':reverse = Trueif method == 'top-to-bottom' or method == 'bottom-to-top':i = 1boundingBoxes = [cv2.boundingRect(c) for c in cons]  # 获取每个轮廓的边界框(cons, boundingBoxes) = zip(*sorted(zip(cons, boundingBoxes),key=lambda b: b[1][i], reverse=reverse))return cons, boundingBoxes# 读取图像
img = cv2.imread('img_3.png')# 复制图像用于绘制轮廓
cont_img = img.copy()# 将图像转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 对灰度图进行高斯滤波,以减少噪声
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
cv_chow('blurred', blurred)# 使用Canny边缘检测算法检测图像中的边缘
edg = cv2.Canny(blurred, 75, 200)
cv_chow('edg', edg)# 查找图像中的轮廓
cnts = cv2.findContours(edg.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]# 在图像上绘制所有轮廓
cv2.drawContours(cont_img, cnts, -1, (0, 0, 255), 3)
cv_chow('cont_img', cont_img)# 根据轮廓面积对轮廓进行排序,从大到小
cnts = sorted(cnts, key=cv2.contourArea, reverse=True)# 对灰度图进行二值化处理,使用Otsu's方法自动确定阈值
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
cv_chow('thresh', thresh)# 在二值化图像中查找轮廓
thresh_cnt = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[1]# 初始化一个列表用于存储符合条件的轮廓
qus_cnts = []# 初始化一个列表用于存储所有的掩码
mask_all = []# 创建一个与二值化图像大小相同的黑色掩码
mask = np.zeros(thresh.shape, dtype='uint8')# 遍历所有轮廓,筛选出符合条件的轮廓
for c in thresh_cnt:(x, y, w, h) = cv2.boundingRect(c)  # 获取轮廓的边界框ar = w / float(h)  # 计算边界框的宽高比if w >= 8 and h >= 10 and 0.5 <= ar <= 2:  # 根据宽度、高度和宽高比筛选轮廓qus_cnts.append(c)# 遍历筛选后的轮廓,绘制掩码并进行与操作
for i in qus_cnts:cv2.drawContours(mask, [i], -1, 255, -1)  # 在掩码上绘制轮廓cv_chow('mask', mask)img_mask_and = cv2.bitwise_and(img, img, mask=mask)  # 对原图像和掩码进行与操作cv_chow('img_mask_and', img_mask_and)

运行结果:

在这里插入图片描述

http://www.dtcms.com/wzjs/117705.html

相关文章:

  • 行业导航类网站模板湖北最新消息
  • 福建微网站建设公司推荐手机网站怎么优化
  • 设计类网站策划案投稿网站
  • 苹果cms做的影视网站广告推广方案怎么写
  • 高端外贸网站建设免费seo快速排名工具
  • 网站制作维护费 归属如何做好互联网营销推广
  • 2016企业网站建设合同西安网站seo推广
  • 个人怎么做微信公众号和微网站吗世界十大网站排名出炉
  • 河北省城乡与建设厅网站自己做seo网站推广
  • 怎么自己做单页网站小红书网络营销策划方案
  • 网站建设前景如何软文营销什么意思
  • wordpress隐藏评论seo入门基础教程
  • java做网站开发百度客服在哪里找
  • 佛山宽屏网站建设淘宝seo是什么
  • 专门做电容的网站百度产品大全首页
  • 怎么在赶集网上做招聘网站企业推广的网站
  • 株洲网上购房节爱站seo查询
  • 做的烂的大网站永久不收费的软件app
  • 自己给自己网站做seo茂名seo顾问服务
  • 湖南省住建厅官方网站建设干校宁波企业seo服务
  • 电脑网站怎么做的semaphore
  • 做网签合同的网站是今日小说排行榜百度搜索风云榜
  • 外贸网站建设 义乌宁波seo排名优化哪家好
  • 做盆栽奶茶店网站百度网盘客服电话人工服务
  • b2c商城网站建设方案企业员工培训总结
  • 深圳高端设计网站手机百度2022年新版本下载
  • 网站开发指的是什么河北seo网络优化培训
  • 一些房产网站是怎么做的seovip培训
  • wordpress begin2.0长沙seo关键词
  • wordpress 为什么不加www的不能访问哪里搜索引擎优化好