图像处理——Image和cv2

article/2025/9/22 16:41:49

1、打开图像

# 路径可带汉字,图像数据RGB
image = Image.open('test.jpg')
# 路径不可带汉字,图像数据BGR
cv2image = cv2.imread('test.jpg') 
# 路径可带汉字,图像数据BGR
# cv2.IMREAD_COLOR:默认参数,读入彩色图像,忽略alpha通道,可用1代替
# cv2.IMREAD_GRAYSCALE:读入灰度图像,可用0代替
# cv2.IMREAD_UNCHANGED:读入完整图像,包括alpha通道,可用-1代替
cv2image = cv2.imdecode(np.fromfile('test.jpg', dtype=np.uint8),cv2.IMREAD_COLOR)

2、显示图像

image.show()
cv2.imshow('cv2image',cv2image)
cv2.waitKey()

3、保存图像

# 路径可带汉字
image.save('test.jpg')
# 路径不可带汉字
cv2.imwrite('cv2image.jpg',cv2image)
# 路径可带汉字
cv2.imencode('.jpg',cv2image)[1].tofile('cv2image.jpg')

4、图像尺寸变化

image = image.resize((200,100),Image.NEAREST)
print (image.size) #(200,100)
cv2image = cv2.resize(cv2image, (200,100), interpolation=cv2.INTER_LINEAR)
print (cv2image.shape) #(100, 200, 3) 

5、图像颜色转换

image_hsv = image.convert('HSV')
image_rgb = image_hsv.convert('RGB')
image_l = image_rgb.convert('L')
cv2image_gray = cv2.cvtColor(cv2image_bgr, cv2.COLOR_BGR2GRAY)
cv2image_bgr = cv2.cvtColor(cv2image_gray, cv2.COLOR_GRAY2BGR)

6、图像深度16位转8位

cv2image = np.array(image)
cv2image = (cv2image - cv2image.min()) / (cv2image.max() - cv2image.min())
cv2image = cv2image * 255
cv2image = cv2image.astype(np.uint8)
image = Image.fromarray(cv2image)
cv2image = (cv2image - cv2image.min()) / (cv2image.max() - cv2image.min())
cv2image = cv2image * 255
cv2image = cv2image.astype(np.uint8)

7、截取部分图像

# (left, top, right, bottom)
image = image.crop((585, 15, 800, 50))
# (top:bottom, left:right)
cv2image = cv2image[15:50, 585:800]

8、获取某一点像素值

image = Image.open('test.jpg')
r, g, b = image.getpixel((640,440)) #(w, h)
print(r, g, b )
cv2image = cv2.imread('test.jpg')
b, g, r = cv2image[440, 640] #[h, w]
print(b, g, r)

9、在图像上打印文字

from PIL import Image, ImageDraw, ImageFont
# 可打印汉字
image = Image.open('test.jpg')
draw = ImageDraw.Draw(image)
# fontStyle = ImageFont.truetype('simsun.ttc', textSize, encoding="utf-8")
fontStyle = ImageFont.truetype('simsun.ttc', 100, encoding="utf-8")
# draw.text((left, top), text, fill=None, font=None, anchor=None, spacing=0, align='left')
draw.text((10, 10), '你好', (255,0,0), fontStyle)
image.show()

在这里插入图片描述

import cv2
# 不可打印汉字
cv2image = cv2.imread('test.jpg')
# cv2.putText(img, text, (left, Bottom), fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
cv2.putText(cv2image, 'Hello', (10, 30), 0, 1, (0,0,255), thickness=None, lineType=None, bottomLeftOrigin=None)
cv2.imshow('test', cv2image)
cv2.waitKey()

在这里插入图片描述

欢迎点赞和关注!您的支持是我前进的动力!


http://chatgpt.dhexx.cn/article/9dilOrN1.shtml

相关文章

cv2.contourArea函数详解

问题:cv2.findContours找到所有的轮廓之后,想取出包含面积最大的轮廓,用cv2.contourArea算一下,但是得到的结果跟实际差别相当大,最大轮廓面积的计算成很小的一个值,而其中一个不太起眼的区域被计算得倒最大…

计算机视觉 – Computer Vision | CV

计算机视觉(Computer Vision)是人工智能领域的一个重要分支。它的目的是:看懂图片里的内容。 本文将介绍计算机视觉的基本概念、实现原理、8 个任务和 4 个生活中常见的应用场景。 计算机视觉为什么重要? 人的大脑皮层&#xff0…

Py之cv2:cv2库(OpenCV,opencv-python)的简介、安装、使用方法(常见函数、方法等)最强详细攻略

关于OpenCV简介 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB等语言的接…

Python第三方cv2库介绍

Python第三方cv2库介绍 CV2指的是OpenCV2(Open Source Computer Vision Library),是一个开源的库平台计算机视觉库。有很强大的图片处理功能,可实现图像处理和计算机视觉方面的很多通用算法。 OpenCV官网文档 https://docs.open…

cv2安装与基本函数

简介 cv2是一个python的图像处理库,依赖c的opencv库处理图像。 安装 使用 pip install numpy pip install opencv-python 即可安装cv2及numpy 输入 >>> import cv2 >>> import numpy as np#cv2读取的图片都是numpy数组 >>> cv2.__…

Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)最强详细攻略

Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)最强详细攻略 目录 cv2(OpenCV,opencv-python)库的简介 1、OpenCV应用领域 1.1、计算机视觉领域方向 1.2、计算机操作底层技术 cv2(OpenCV&#x…

常用的SQL语句

删除数据库中表的某些相同的某些记录 OR 查找数据库的表中的相同记录 一、删除数据库中表的某些相同的某些记录 delete from tablename where only_Id not in(select min(only_id) from tablename group by sameName) 二、选出相同记录的SQL语句 AND 删除相同记录的SQL语句…

数据库基础(常用SQL语句)

一、数据库级及SQL语言简介 1、目前主流数据库 微软:sql server、access 瑞典:mysql ibm: db2 sybase:sybase ibm: informix oracle: oracle 2、SQL语言 DQL-------------数据查询语言 select … From … Where DML-------------数据操纵语言 insert、…

SQL基本语句(整理)

一、DDL(Data Definition Language) 数据定义语言,用来定义数据库对象(数据库,表,字段) ①查询 查询所有数据库 show databases; 查询当前数据库 select database(); ②创建 create database [if not exists] 数…

SQL常用语句(基础篇)

SQL常用语句(基础篇) 说明:创建数据库 CREATE DATABASE database-name 说明:删除数据库 drop database dbname 说明:备份sql server —创建备份数据的device USE master EXEC sp_addumpdevice ‘disk’,‘testBac…

SQL最常用的语句

语法: 一步步由浅到深,这里用的都是mysql做的。 基础: 连接数据库: mysql -h10.20.66.32 -uroot -p123456 1 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面是密码。 查看数据库 show database…

数据库常用sql语句总结

查看时右侧可以打开CSDN自带的目录,方便查看 目录 一、基础 1.SELECT 语句 2.SELECT DISTINCT 语句 3.WHERE 子句 4.AND 和 OR 运算符 5.ORDER BY 语句 6.INSERT INTO 语句 7.Update 语句 8.DELETE 语句 二、高级 1.TOP 子句 2.LIKE 操作符 3.SQL 通配…

10个必须掌握的SQL常用语句

世界上70%的相关性数据可以被储存为表格数据,即类似Excel,Csv类型的数据,如何去查询和分析相关性的数据?对于少量数据,我们可以使用Excel,更多一点数据,我们可以使用Python, pandas 处理大数据 …

从零开始USRP+GNRRADIO系列(基础入门篇和C++自定义模块)

从零开始USRPGNRRADIO系列(基础入门篇) 文章目录 从零开始USRPGNRRADIO系列(基础入门篇)usrp简介创建第一个usrp图C自定义模块 usrp简介 通用软件无线电外设(USRP)是由Ettus Research及其母公司National I…

入门学习计算机第十八天——自定义数据类型(结构体)

入门学习计算机第十八天——自定义数据类型(结构体) 编译器:Microsoft Visual Studio 2019 自定义类型: 结构体枚举联合体 结构体 结构体类型的声明 结构的基础知识 结构是一些值的集合,这些值称为成员变量 结构的…

【计算机基础】

文章目录 线程、协程的状态 计算机网络DNS解析 计算机基础进程间通讯的7种方式讲一下程序的虚拟内存、常驻内存和逻辑内存。堆和栈是存啥的?什么是大小端? 什么是死锁?什么情况下会发生(避免)死锁?死锁产生的4个必要条…

计算机基础(1)

目录 一、计算机发展 1.1计算机发展史 1.2计算机分类 1.2.1按规模划分 1.2.2服务器与客户机 1.2.2.1 服务器按外形分类 1.3服务器硬件 一、计算机发展 1.1计算机发展史 1、第一代计算机(1946-1957) 电子管时代 冯诺依曼体系结构:数字计算机的数制采用二进…

计算机基础介绍

1、组成部分 中央处理器、内存、存储设备、输入/输出设备、通信设备(各部分通过总线来连接) 2、冯诺依曼体系结构:现代计算机的基础 3、中央处理器(CPU)——计算机的大脑 (1)作用&#xff1a…

C语言基础入门——自定义类型

学习目标: 学习并了解C语言自定义类型 目录 学习目标: 一、结构体 ●结构体的声明 ●结构体的引用 ●结构体的定义和初始化 ●结构体的内存对齐 ●结构体的传参 ●结构体的位段(位段的可填充和可移植性) 二、枚举 ●枚举的定…

1.计算机基础

目录 1.1计算机系统 1.3 计算机硬件 1.4 计算机常用计数制 1.5 数据表示 1.1计算机系统 计算机多种形式:电脑,笔记本,智能手机,服务器等; 两部分组成:硬件系统和软件系统。 1.1.1 世界上第一台计算机 世…