opencv 裁剪图片方法详解

news2024/11/19 20:40:19

 

OpenCV 是一个用于计算机视觉和机器学习的开源库。它包含了很多图像处理的功能,包括裁剪图片。在 Python 中,我们可以使用 OpenCV 的 `cv2` 模块来实现图片的裁剪。
以下是使用 OpenCV 裁剪图片的详细步骤:
1. 导入所需的库:
```python
import cv2
```
2. 读取图片:
```python
image = cv2.imread('path/to/your/image.jpg')
```
3. 获取图片的宽度和高度:
```python
height, width, _ = image.shape
```
4. 定义裁剪区域:
```python
start_row, start_col = int(height * 0.25), int(width * 0.25)
end_row, end_col = int(height * 0.75), int(width * 0.75)
```
这里,我们将图片的左上角和右下角分别设置为原始图片的 1/4 和 3/4 处。你可以根据需要调整这些值。
5. 裁剪图片:
```python
cropped_image = image[start_row:end_row, start_col:end_col]
```
6. 显示裁剪后的图片:
```python
cv2.imshow('Cropped Image', cropped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
7. 保存裁剪后的图片:
```python
cv2.imwrite('path/to/save/cropped_image.jpg', cropped_image)
```
将以上代码整合到一起,你可以得到一个完整的裁剪图片的程序:
```python
import cv2
# 读取图片
image = cv2.imread('path/to/your/image.jpg')
# 获取图片的宽度和高度
height, width, _ = image.shape
# 定义裁剪区域
start_row, start_col = int(height * 0.25), int(width * 0.25)
end_row, end_col = int(height * 0.75), int(width * 0.75)
# 裁剪图片
cropped_image = image[start_row:end_row, start_col:end_col]
# 显示裁剪后的图片
cv2.imshow('Cropped Image', cropped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存裁剪后的图片
cv2.imwrite('path/to/save/cropped_image.jpg', cropped_image)
```
这就是使用 OpenCV 裁剪图片的方法。希望对你有所帮助!

以下是几段常用的 OpenCV 裁剪图片的代码:

1. 裁剪指定区域的图片
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 指定裁剪区域
x, y, w, h = 100, 100, 200, 200
# 裁剪图片
crop_img = img[y:y+h, x:x+w]
# 显示裁剪后的图片
cv2.imshow('crop_img', crop_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
2. 根据比例裁剪图片
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 获取图片尺寸
height, width = img.shape[:2]
# 指定裁剪比例
scale = 0.5
# 计算裁剪区域
x, y, w, h = int(width*(1-scale)/2), int(height*(1-scale)/2), int(width*scale), int(height*scale)
# 裁剪图片
crop_img = img[y:y+h, x:x+w]
# 显示裁剪后的图片
cv2.imshow('crop_img', crop_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
3. 根据目标尺寸裁剪图片
```python
import cv2
# 读取图片
img = cv2.imread('image.jpg')
# 指定目标尺寸
target_width, target_height = 200, 200
# 调整图片尺寸
resized_img = cv2.resize(img, (target_width, target_height))
# 显示调整后的图片
cv2.imshow('resized_img', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python3.8,torch1.10.2+cu113、torch-geometric 安装

【1】conda create -n name python=3.8 【2】安装 torch 注意先看可适应的最高cuda版本 https://data.pyg.org/whl/ 版本对应 【3】按照顺序安装torch-geometric: torch-sparse、torch-scatter、torch-cluster、 torch-spline-conv \torch-geometric pip install torc…

详解c++新特性—c++11

目录 1、auto 1.1、解释 1.2、语法 1.3、注意事项 1.4、实例 1.5、auto和const的结合 1.6、auto的限制 1.7、auto的应用 2、decltype 2.1、解释 2.2、语法 2.3、注意事项 2.4、实例 2.5、decltype推导规则 2.6、decltype实际运用 3、返回值类型后置 3.1、解释…

怎么用手机拍照方式将车辆合格证转为excel表格?

将车辆合格证转为结构化的Excel文档是一项常见的需求,它可以让用户更方便快捷地对其中的数据进行查询和储存、管理。但当前支持这种需求的手机软件非常少,怎么办呢?用金鸣表格文字识别小程序,即可通过手机拍照,快速地实…

基于JavaSpringBoot+Vue+uniapp实现微信掌上图书小程序

最近开发了一个基于JavaSpringBootVueuniapp实现微信掌上图书小程序,系统非常的nice。 文章目录 1,系统技术简介1.1 Mysql数据库1.2SpringBoot框架 2,系统功能介绍2.1 系统前台功能2.2 系统后台管理2.3 流程图和结构功能图 3,系统…

HydroD 实用教程(八)频域水动力分析

目 录 一、前言二、前处理三、定义/提交作业3.1 创建分析作业3.2 定义分析工况3.3 配置分析选项3.4 设置输出文件3.5 提交求解计算 四、输出文件4.1 Hydrodynamic Results Interface File4.2 Loads Interface File4.3 Analysis Control Data File for Structural Analysis4.4 W…

导线舞动的防范措施

输电线路导线舞动在线监测装置 一、产品描述: 导线舞动幅度过大会导致铁塔等设施发生形变,严重的可能会发生铁塔坍塌,倒塔挂线,进而导致电力系统瘫痪,威胁到电力供应系统的稳定性,电力供应系统的稳定需要保…

SCSI介绍和SCSI命令承载于各类总线的方式

1. SCSI协议简介 小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。虽然名字里面带个接口,但实际上是一…

文本三剑客-Sed

sed工作原理 sed的特点: sed基本语法 模式空间中的编辑操作---地址定界 常用编辑命令 增添(a) 追加(i) 删除(d) 读入文件(r) 固定长度替换(y&#xff0…

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时之网络攻击新威胁

ChatGPT:你真的了解网络安全吗?浅谈网络安全攻击防御进行时 网络攻击新威胁1) 人工智能的应用2) 5G和物联网的崛起3) 云安全4) 社交工程的威胁 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国…

Netlogo学习笔记

第一行:国际惯例咕咕咕。 第二行:人工势场这个概念好神奇(虽然我觉得就是强行捏了一个高大上的词 第三行:希望全天下的软件都能把要用的东西集成成库,然后只需要无脑点点就可以了(我本人:又懒…

day14 HTTPServlet

HTTP协议 含义:是TCP、IP协议之上的应用层协议 作用:规定浏览器和服务器数据之间的交互格式 注意:该协议的端口为80,Tomcat是8080 http的特点 1.无状态,无记忆 2.“1.0”版本需要多次请求和响应,1.1一…

CentOS 7 离线安装MySQL

MySQL下载官网: https://downloads.mysql.com/archives/community/ 文章使用的MySQL版本下载地址: https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz 一、卸载旧的mysql 1、删除MySQL的安装文件 [rootwww ~]# …

软件设计师 计算机网络

名字带IP AP的都是网络层 所有带T的除了TFTP其他都是TCP,所有不带T的除了POP3其他都是UDP​ **物理层的互联设备有中继器和集线器,集线器是一种特殊的多路多端口中继器 网络层:路由器 物理层:中继器 数据链路层:网桥…

推动解决新能源电车充电不便的难题

安科瑞虞佳豪 新一轮科技革命和产业变革的蓬勃发展,加速了汽车与能源、交通、信息通信等领域的深度融合,汽车产业朝着电动化、智能化、网联化方向前行,新能源汽车产业迎来了前所未有的发展机遇。花生好车紧跟发展潮流和趋势,大力…

数据结构:二叉树的顺序结构--堆

朋友们、伙计们,我们又见面了,本期来给大家解读一下栈和队列方面的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通…

代码随想录算法训练营day50 | 123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV

代码随想录算法训练营day50 | 123.买卖股票的最佳时机III,188.买卖股票的最佳时机IV 123.买卖股票的最佳时机III解法一:动态规划 188.买卖股票的最佳时机IV解法一:动态规划 总结 123.买卖股票的最佳时机III 教程视频:https://www…

【NovelAI 小说SD批量生成 视频克隆】环境配置和使用方法

【样品】《我在东北立堂口》图生图半自动版SD一键成片 操作步骤&环境配置地址: 【NovelAI】月产10000全自动批量原创小说短视频支持文生图和视频克隆 该文章面向购买脚本的付费用户,提供所有问题以及解决办法。使用 notepad 打开对应的文件即可&…

光敏晶体管(ALS-PT19-315C/L177/TR8) 光照度和电压,电流关系分析.

背景 当我们使用光敏晶体管进行,测算光照度时,大多使用ADC电路测到电压. 那么怎么根据这个电压计算出对应具体的光照度呢? 下面将以 ALS-PT19-315C/L177/TR8 型号的 光敏晶体管为例,来进行分析介绍,并给出 如何根据最大光照度范围 选定合适的电阻和电容. 1,直接看数据手册给…

如何快速录制电脑屏幕?教您一键录屏的3种方法!

案例:如何快速录制电脑屏幕? 【打开录屏工具录制电脑屏幕,需要耗费一定的时间。有没有方法可以快速打开电脑录屏工具,实现一键录屏?】 随着互联网的发展和普及,电脑屏幕录制已经成为了一项必要的工作技能…

R语言实践——rWCVP入门

rWCVP入门 介绍1. 访问到WCVP1.1 方法一1.2 方法二(谨慎) 2. WCVP数据筛选2.1 关于按分类单元筛选的说明2.2 关于按分布区域筛选的说明 笔者实践 介绍 世界维管植物名录(WCVP)是维管植物物种的全球共识。它提供了科学已知的> …