python图像处理实战(一)—图像基础

🚀写在前面🚀

🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog 

🎁欢迎各位大佬支持点赞收藏,三连必回!!

🔈本人新开系列专栏—python图像处理

❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。

目录

一、前言

二、认识图像 

三、用到的库

 (1)Numpy

 (2)OpenCV

 (3)Matplotlib

四、代码实操 

(1)矩阵创建(numpy)

1、创建方式一:常规array法创建

2、创建方式二:zero初始化法

3、创建方式三:ones创建法 

4、创建方式四:单位矩阵创建 

(2)三个重要属性

(3)基本操作

(4)矩阵运算

(5)获取元素 

(6)绘图函数 

(7)读取显示图像 


注:相关图片资源可在积分资源中获取,相关链接:https://download.csdn.net/download/m0_52051577/87844285?spm=1001.2014.3001.5503

一、前言

图像处理是计算机视觉的一个重要研究领域,主要研究如何让计算机代替人眼实现对目标的分类、识别、跟踪和场景理解等内容。

二、认识图像 

 

 说明:分辨率:像素点的数量(1080P:1920✖1080)

PPI(像素密度):每英寸所拥有的像素数量

PPI=\frac{\sqrt{X^{2}+Y^{2}}}{square}其中square表示屏幕尺寸

相同尺寸下,像素点越多,图片的分辨率越高,图片的像素密度越高,看起来也就越清晰。

 三、用到的库

 (1)Numpy

在图像处理中主要用于

※导入库

※元素、向量处理

※矩阵属性

※加减乘除、立方、开根

※最大值、最小值、平均值

※矩阵乘法

※元素获取

 (2)OpenCV

在图像处理中主要用于

※导入库

※读取图片

※显示图片

※保存图片

 (3)Matplotlib

 在图像处理中主要用于

※导入库

※绘制折线图

※绘制柱状图

※绘制xy坐标

※绘制标题

※显示图片

        通过前面对库的相关介绍,了解到这些库在用于图像处理中的各自分工,那么这些库是如何在图像处理中发挥作用的,下面上代码。

这里提供几个库的安装命令:

pip install numpy matplotlib -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install pandas scipy scikit-learn scikit-image -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install opencv-python -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install jupyter -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install jupyterlab -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 

四、代码实操 

(1)矩阵创建(numpy)

#导入库
import numpy as np

 1、创建方式一:常规array法创建

A = np.array([[1,2,3],[4,5,6],[7,8,9]
])

 

2、创建方式二:zero初始化法

B = np.zeros((3,4))

 

3、创建方式三:ones创建法 

C = np.ones((3,4), dtype=np.int64)
E = np.ones((2,4,3))

 

  注:其中zero函数与ones函数创建格式相同,其中(3,4)表示创建3行4列的二维数组,或三个四维行向量。 (2,4,3)表示创建一个2页4行3列的三维数组。

        np.ones函数的应用非常广泛,它可以被广泛用于科学计算、图像处理、机器学习、深度学习等领域。

4、创建方式四:单位矩阵创建 

D = np.identity(4)

 

创建4阶的单位矩阵。 

(2)三个重要属性

print('A.dtype =', A.dtype)  #类型
print('A.ndim =', A.shape)   #表示各位维度大小的元组。返回的是一个元组。
print('A.ndim =', A.ndim)    #ndim返回的是数组的维度,返回的只有一个数,该数即表示数组的维度。A1 = A.reshape((1,9))
print(A1) # 有几个方括号,就有几个维度A1 = A1.astype(np.float32)#转换数组的数据类型。

(3)基本操作

# 加减乘除
B = A + 2 
C = A / 2  print(A)
print(B)
print(C)

 

# 平方、开根、对数
B = np.power(A, 0.5)
C = np.sqrt(A)
D = np.log(A)print(B)
print(C)
print(D)

 

# 最大值、最小值、平均值
ma1 = A.max() 
ma2 = np.max(A)mi1 = A.min(axis=0)
mi2 = np.min(A, axis=0)me1 = A.mean(axis=1)
me2 = np.mean(A, axis=1)

# 转置
print(A)
print(A.T)
print(A.transpose())
print(np.transpose)

(4)矩阵运算

x = np.array([1, 1, 2])z1 = A * x
z2 = A @ x
z3 = A.dot(x)print(z1)
print(z2)
print(z3)B = np.ones((3,3), dtype=np.int)Z1 = A * B # 逐元素相乘
Z2 = A @ B # 矩阵乘法
Z3 = A.dot(B) #获取两个元素a,b的乘积print(Z1)
print(Z2)
print(Z3)

 

(5)获取元素 

u = np.arange(2, 10, 2)
print(u)

  arange()函数:(2,10,2)获取[2,10)之间以2为步长的元素。

 

E = np.random.randint(0, 10, (5,5), dtype=np.int)
# 获取子矩阵
E1 = E[0:3, 0:3].copy()
print(E1)

 

E1.flatten()#返回一个一维数组。

 

(6)绘图函数 

A1 = np.random.randint(0, 10, (10,10))
print(A1)
bins = np.arange(-0.5, 10, 1)
plt.hist(A1.flatten(), bins=bins, rwidth=0.8, color='green')
plt.xticks(range(0,10))
plt.show()

 创建数组A1:

创建了10×10的二维数组,其中每行的元素为[0,10)的数字。 

根据创建的数组绘制图像:

 其中,bins是一个范围,采用-0.5到10的范围,间隔为1。

(7)读取显示图像 

img1 = cv.imread('D:\\proclass\\class\\pic\\apple.jpg')
img1 = cv.cvtColor(img1, cv.COLOR_BGR2RGB)
plt.imshow(img1)
plt.show()

 

#读取灰度图
img2 = cv.imread('D:\\proclass\\class\\pic\\apple.jpg', 0)
plt.imshow(img2, cmap='gray')
plt.show()

 

输出两张图片的维度发现,图1为3维,即彩色颜色通道,图2为2维,即黑白颜色通道。 

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

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

相关文章

MYSQL语句。

一些常用的操作内容,非常重要。首先从数据的增删改查谈起。 #增加一条数据 INSERT INTO studentdb.book(name, maker, price, num, time, autor) VALUES (Sping, 中国邮政, 500元, 456, 2021/11/30, spingsping) #查询表单结构 DESC book #查询表的内容 SELECT * FR…

MySQL语句的使用

目录 一,基本的增删改查 二,案例演示 三,排序拓展 1.拓展一 2. 拓展二 一,基本的增删改查 (SQLServer与PLSQL的语句基本一致) 提示:但是"" 在MySQL里面加号不做拼接&#xff0c…

chatgpt赋能python:Python中浮点数的定义

Python中浮点数的定义 什么是浮点数? 在计算机科学中,浮点数(floating-point number)是一种用于表示实数的近似值的数值类型。Python中的浮点数是由整数部分和小数部分组成的,可以使用小数点来表示。例如&#xff0c…

高级MySQL语句

高级MySQL语句 一、高级SQL语句 1、SELECT ----显示表格中一个或数个栏位的所有资料2、DISTINCT ----不显示重复的资料3、WHERE ----有条件查询4、AND OR ----且 或5、IN ----显示已知的值的资料6、BETWEEN ----显示两个值范围内的资料7、通配符 ----通常通配符都是跟 LIKE 一起…

MySQL语句优化

MySQL语句优化 1.通过EXPLAIN分析低效SQL的执行计划2.使用索引(其下测试效率通过查询结果的type列的值进行评判)1)对于创建的多列索引,只要查询的条件中用到了最左边的列,索引一般就会被使用, 举例说明如下…

Mysql语句

查询 select 查询显示的列表 from 表名 select类似于: system.out.print(查询显示的列表), 特点: 1.查询列表可以是: 表中的字段,常量值,函数,表达式 2.查询出的表格是虚拟的表格(临时表格) 一基础查询 1.查询表中单个字段 date #1.查询表中单个字段 select us…

Mysql基本语句

1、数据库的基本类型 1.关系数据库 特点:以表和表的关联构成的数据结构 优点:能表达复杂的数据关系。强大的查询语言,能精确查找想要的数据 缺点:读写性能比较差,尤其是海量数据的读写。数据结构比较死板 用途&am…

MySQL的基本语句

目录 1.什么是数据库 2.数据库的操作 2.1.显示数据库 2.2.创建数据库 2.3.使用数据库 2.4.删除数据库 3.数据类型 3.1数值类型 3.2字符串类型 3.3日期类型 4.表的操作 4.1创建表 4.2往表中增加信息 5.删除表 1.什么是数据库 数据库大体可以分为关系型数据库和非关系…

MySQL 操作语句大全(详细)

sql语句总结 总结内容1. 基本概念2. SQL列的常用类型3. DDL简单操作3.1 数据库操作3.2 表操作 4. DML操作4.1 修改操作(UPDATE SET)4.2 插入操作(INSERT INTO VALUE)4.3 删除操作(DELETE) 5. DQL操作被操作…

14:00面试,14:06就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,…

Chrome观看高分辨率60fps视频卡顿、丢帧问题的 问题记录

朋友的一台笔记本观看YouTube和哔哩哔哩的高分辨率视频卡成PPT 系统 是 win10企业版LTSC 版本号1809,使用的是Chrome浏览器 配置是i58250UhHD620,观看油管4k以上视频满负荷 安装WIN10的V9解码器. 安装V9解码器还是很卡顿,后来发现是谷歌浏览器的硬件加速…

酷睿i5 8250u相当于什么水平 i58250u属于什么级别

i5 8250u是笔记本处理器,制程工艺14nm,拥有4核心,8线程,cpu主频1.6GHz,睿频3.4GHz,三级缓存6MB,集成HD620显卡,显卡频率300MHz,最大动态频率1.1GHz,BGA插槽13…

学计算机的用hd620,HD620核显相当于什么独立显卡 HD620核心显卡性能评测

2017年初,intel推出全新七代Kaby Lake架构处理器,无论是笔记本还是台式机都进行覆盖,这一代不仅仅是CPU性能提升,其内置的核显也进行了升级。七代笔记本CPU内置的HD620核显相当于什么独立显卡呢?下面装机之家来先带大家…

HD2500显卡驱动linux,intel hd 2500驱动下载

Intel HD Graphics 2500显卡驱动程序是一款可以有效解决Intel HD Graphics 2500显卡出现的一些问题的驱动工具,本站提供了可以在win10系统中使用的windows版Intel HD Graphics 2500显卡驱动下载地址。有需要的朋友们可以前来下载使用。 Intel HD Graphics 2500/4000…

小米笔记本Air 13.3 指纹版安装黑苹果 macOS High Sierra 10.13 教程

注意:本教程只适用于「小米笔记本Air 13.3 指纹版 i5-7200U」,别的型号哪怕是小米笔记本Air 13.3 非指纹版或者小米笔记本Pro都会存在问题。且安装新系统这件事本身存在风险,有可能造成数据丢失,请谨慎尝试!本教程不对…

inter uhd graphics630显卡驱动_现有190个UHD频道

欧洲通信卫星公司Michel Chabrol(高级副总裁/新电视格式)在戛纳秋季电视节节目市场的开幕式上表示,其数据显示,现在有190个超高清频道或节目信号源,比一年前增长了20%。 卫星传送是超高清频道的主要传送方式,共有93个直接频道(共1…

hd620显卡驱动 linux,倍控工控机i7 7500U PVE下核显HD620 HDMI直通成功

折腾软路由的工控机 6口 i7 7500U的时候想把HDMI接口之前接入显示器显示虚拟机WIN10的界面,查了老半天才解决,下面顺一下我的步骤。 本教程在6.0测试通过 检查CPU是否支持VT-d 虚拟机创建的时候注意一下4点: 1.不要设置开机自启动 2.如果只是直通核显设备,不要像网上那些教…

win10笔记本电脑双系统 安装黑苹果系统macOS 小白黑苹果乐园下载资源简便安装黑苹果方式,非常详细,还有资源!

马上就要考研咯,今天还是作死研究安装了下黑苹果,罪恶感啊 言归正传,接下来将献上我的黑苹果教程 首先呢第一步下载你所需要的macOS系统,地址如下 https://imac.hk/category/macos/ 这里也有我的几个保存在百度网盘里的黑苹…

英特尔核显驱动hd630_【惊喜提升】英特尔第十代Cometlake台式机处理器详解与简单评测...

【0、前言】 第十代还有4个月左右才会发布,本文所测试的处理器性能并不代表实际上市后的具体情形(本文的结果会偏低)。这也并不影响你选择9代或AMD平台,早买早享受,因为等到十代价格趋于稳定合理,至少还要等半年以上,英特尔最近几代并不会出现价格下跌的现象(超级保值)…

【黑苹果 Hackintosh】Delll成就5468(Vostro 5468)黑苹果

目录 一、缺点: 二、下面是我的配置: 三、过程: 前言 开始前说一哈:用腻了pr和ae剪辑,想体验fcpx,但是手边只有一台win本,所以黑一下。之前一直担心驱动不全不敢黑,但是看来已经…