首页 > 编程语言 >Python OpenCV 截取图片中的小图片

Python OpenCV 截取图片中的小图片

时间:2023-12-30 11:22:36浏览次数:49  
标签:boundingRect Python image cv2 OpenCV contours sorted contour 图片

 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 i = 1
28 for contour in sorted_contours:
29     x, y, w, h = cv2.boundingRect(contour)
30     cropped_image = image[y:y+h, x:x+w]
31     # 保存裁剪后的图片
32     cv2.imwrite(str(i)+'.jpg', cropped_image)
33     i+=1
34 
35 # 显示结果
36 plt.imshow(image[:,:,::-1])

 

标签:boundingRect,Python,image,cv2,OpenCV,contours,sorted,contour,图片
From: https://www.cnblogs.com/watermeloncode/p/17936171.html

相关文章

  • Python OpenCV 去除截图中的所有图片
    1importcv22importnumpyasnp3importmatplotlib.pyplotasplt45#读取图像并转换为灰度图像6image=cv2.imread('./a.jpg')7gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)89#使用Canny边缘检测10edges=cv2.Canny(gray,0,200)#调......
  • 【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的......