首页 > 编程语言 >Python OpenCV 去除截图中的所有图片

Python OpenCV 去除截图中的所有图片

时间:2023-12-30 11:22:06浏览次数:28  
标签:截图 Python mask image cv2 OpenCV contours contour 255

 1 import cv2
 2 import numpy as np
 3 import matplotlib.pyplot as plt
 4 
 5 # 读取图像并转换为灰度图像
 6 image = cv2.imread('./a.jpg')
 7 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 8 
 9 # 使用 Canny 边缘检测
10 edges = cv2.Canny(gray, 0, 200)  # 调整阈值参数
11 
12 # 寻找轮廓
13 contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
14 
15 # 过滤出长宽大于150的轮廓
16 filtered_contours = [contour for contour in contours if cv2.boundingRect(contour)[2] > 110 and cv2.boundingRect(contour)[3] > 110]
17 
18 # 对轮廓按面积进行排序
19 sorted_contours = sorted(filtered_contours, key=cv2.contourArea, reverse=True)[:10]  # 只保留最大的五个轮廓
20 
21 # 绘制矩形轮廓
22 for contour in sorted_contours:
23     x, y, w, h = cv2.boundingRect(contour)
24     cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
25     
26 # 创建一个与原始图像相同大小的空白图像
27 mask = np.zeros_like(image)
28 
29 # 将轮廓内的区域更改为背景颜色
30 for contour in sorted_contours:
31     x, y, w, h = cv2.boundingRect(contour)
32     cv2.rectangle(mask, (x, y), (x + w, y + h), (255, 255, 255), thickness=cv2.FILLED)
33 
34 
35 # 将填充区域与原始图像进行叠加
36 result = np.where(mask != 255, image, mask)
37 # result = cv2.bitwise_and(image, cv2.bitwise_not(mask))
38 # 显示结果
39 plt.imshow(result[:,:,::-1])

 

标签:截图,Python,mask,image,cv2,OpenCV,contours,contour,255
From: https://www.cnblogs.com/watermeloncode/p/17936173.html

相关文章

  • 【Python爬虫课程设计】唐诗三百首——数据爬虫+数据可视化
    一、选题背景介绍中国古代文化中的唐诗是一颗璀璨的明珠,代表了中华民族的文化底蕴和艺术成就。唐诗以其深邃的意境、优美的语言和丰富的情感打动了世人。然而,要阅读和欣赏大量的唐诗作品并非易事。为了让更多人能够了解、感受和研究唐诗,利用爬虫技术和数据可视化手段对唐诗进行数......
  • 用python打开文件获取文件属性时,运行报错PermissionError: [Errno 13] Permission den
    一:概述在开发中我们经常会使用python程序去对物理主机平台上的文件进行操作,在这里说明一下,python中获取文件属性时,运行出现的错误。二:具体说明<1>获取文件属性的代码importos#创建一个临时目录temp_dir='temp'os.mkdir(temp_dir)#在临时目录中创建一个文件temp_file=o......
  • Python简易安装教程
    Python安装教程Windows用户访问Python官网:https://www.python.org/打开下载好的安装包根据提示安装Pip换源(系统级别)(注:Pip在3.4以上的版本才支持,3.4之前的版本可以在cmd中输入easy_installpip下载pip)1.为什么要换源?Python安装第三方库默认使用的官......
  • [python] 基于Dataset库操作数据库
    dataset库是Python中一个用于操作数据库的简单库,它提供了一种简洁的方式与各种关系型数据库进行交互,例如SQLite、MySQL、PostgreSQL等。你可以使用dataset库来执行查询、插入、更新和删除操作,而无需编写复杂的SQL语句。dataset库适用于小规模的数据存储和查询场景,相比csv和json文......
  • 【Python&RS】基于矢量范围批量下载遥感瓦片高清数据(天地图、高德、谷歌等)
    ​    这个是之前写的代码了,正好今天有空所以就和大家分享一下。我们在处理项目时,有时候需要高清底图作为辅助数据源去对比数据,所以可能会需要卫星数据。所以今天就和大家分享一下如何使用Python基于矢量范围批量下载高清遥感瓦片数据。1读取矢量边界    这......
  • 【python爬虫课程设计】从懂球帝爬取中超联赛知名运动员数据+数据可视化
    一、选题背景:中超联赛作为中国顶级足球赛事,吸引了广泛的关注,其球员数据包含了丰富的信息,涵盖球员技术、表现和比赛策略等方面。随着数据科学技术的不断发展,对于足球俱乐部和教练来说,充分利用这些数据进行分析和挖掘,以制定更有效的战术和管理策略变得愈发重要。选题背景重点:1.数......
  • python反编译全流程
    [NISACTF2022]ezpython1、将exe文件转换为pyc文件格式此题附件下载下来后为exe文件格式,我们需要用到pyinstxtractor.py这个工具来将exe文件转成pyc格式在pyinstxtractor.py的文件夹中cmd,输入pythonpyinstxtractor.py文件名2、修改magicnumber经过以上操作后会生成一个......
  • 【Python数据分析课程设计】大数据分析—Pokemon 1996-2022年各世代宝可梦数据集分析
    一、选题背景宝可梦是一种受欢迎的媒体内容和游戏系列,由任天堂、GameFreak和Creatures等公司合作开发。它们是虚构的生物角色,具有各种不同的属性、技能和能力。自1996年首次推出以来,宝可梦已经成为全球范围内的文化现象。宝可梦不仅仅是娱乐产品,它们也在社会中产生了广泛的影响: ......
  • ubuntu16下升级python3的版本--升级到3.8
    ubuntu16下升级python3的版本,这里是升级到3.8。1.首先添加安装源,在命令行输入如下命令:$sudoadd-apt-repositoryppa:jonathonf/python-3.82.更新apt$sudoaptupdate3.更新安装源后,通过apt安装Python3.8$sudoapt-getinstallpython3.84.安装完成之后,设置Python3.8的......
  • 使用Pipenv进行Python虚拟环境管理--conda平替
    Pipenv使用教程Anaconda是一个开箱即用的Python开发环境,同时也包含虚拟环境管理工具conda。但是Anaconda的缺点包括:大型安装包:Anaconda的安装包相对较大,需要消耗较多的磁盘空间。依赖冲突:在使用Anaconda时,若安装包过多可能会出现依赖冲突的情况,需要手动解决。此时则......