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

这篇具有很好参考价值的文章主要介绍了python图像处理实战(一)—图像基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、前言

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

二、认识图像 

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

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

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

python图像处理实战(一)—图像基础其中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]
])

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

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

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

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

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

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

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

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

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

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

D = np.identity(4)

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

创建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)#转换数组的数据类型。

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

(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)

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

# 最大值、最小值、平均值
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)

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

(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)

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

(5)获取元素 

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

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

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

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

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

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

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

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

(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:

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

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

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

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

 其中,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()

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

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

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

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

输出两张图片的维度发现,图1为3维,即彩色颜色通道,图2为2维,即黑白颜色通道。 文章来源地址https://www.toymoban.com/news/detail-485408.html

到了这里,关于python图像处理实战(一)—图像基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python图像处理实战(二)—图像几何变换

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 前言       图像几何变换就是在不改变图像像素值的前提

    2024年02月09日
    浏览(61)
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之六 简单图像倾斜校正处理效果

    目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之六 简单图像倾斜校正处理效果 一、简单介绍 二、简单图像倾斜校正处理效果实现原理 三、简单图像倾斜校正处理效果案例实现简单步骤 四、注意事项 Python是一种跨平台的计算机程序设计语言。是一种面向对

    2024年04月13日
    浏览(69)
  • python图像处理实战(二)—二值化图像与线性变换

    🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?type=blog  🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初晴之时,所有的蜻蜓振翅和雨后惊雷,都归你。 前言         首先引入以下灰度变换的概念。      

    2024年02月07日
    浏览(52)
  • MATLAB算法实战应用案例精讲-【图像处理】机器视觉(基础篇)(七)

    目录  几个高频面试题目 工业检测中黑白相机为什么比彩色工业相机更受青睐 机器视觉的发展历程 算法原理

    2024年02月06日
    浏览(60)
  • 深度学习图像处理基础工具——opencv 实战信用卡数字识别

    任务 信用卡数字识别 穿插之前学的知识点  形态学操作 模板匹配 等 总体流程与方法 1.有一个模板 2 用轮廓检测把模板中数字拿出来 外接矩形(模板和输入图像的大小要一致 )3 一系列预处理操作 问题的解决思路 1.分析准备:准备模板,读取文件——转化为灰度图——转化

    2024年04月15日
    浏览(55)
  • python数字图像处理基础(四)——图像平滑处理、形态学操作、图像梯度

    让有噪音点(图像上显得突兀的像素点)的图像变得更加自然顺眼 1.均值滤波 blur() 根据核的大小(rowcol),每个像素值就等于以此像素为中心的周围rowcol个像素的平均值。 核大一点,显然越平滑、模糊。 result = cv2.blur(img, (15, 15)) 2.方框滤波 boxFilter() normalize=true的时候,效果同

    2024年01月18日
    浏览(82)
  • Python 基于 OpenCV 视觉图像处理实战 之 背景知识

    目录 Python  基于 OpenCV 视觉图像处理实战  之 背景知识 一、简单介绍 二、人工智能(Artificial Intelligence,AI) 三、OpenCV 四、计算机视觉任务的主要类型 五、计算机视觉是通过创建人工模型来模拟本该由人类执行的视觉任务。 Python是一种跨平台的计算机程序设计语言。是一

    2024年04月12日
    浏览(63)
  • python数字图像处理基础(十)——背景建模

    背景建模是计算机视觉和图像处理中的一项关键技术,用于提取视频中的前景对象。在视频监控、运动检测和行为分析等领域中,背景建模被广泛应用。其基本思想是通过对视频序列中的像素进行建模,找到视频中的静态背景,并将不同的像素标记为背景和前景,从而使后续

    2024年01月19日
    浏览(66)
  • python数字图像处理基础(九)——特征匹配

    蛮力匹配(ORB匹配) Brute-Force匹配非常简单,首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行(描述符)距离测试,最后返回距离最近的关键点. 对于BF匹配器,首先我们必须使用**cv2.BFMatcher()**创建 BFMatcher 对象。它需要两个可选的参数: normTyp

    2024年01月19日
    浏览(54)
  • python数字图像处理基础(五)——Canny边缘检测、图像金字塔、图像分割

    梯度是什么? 梯度就是变化的最快的那个方向 edge = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient ]]]) 第一个参数是需要处理的原图像,该图像必须为单通道的灰度图; 第二个参数是阈值1; 第三个参数是阈值2。 原理步骤 1)使用高斯滤波器,以平滑图像,滤除噪

    2024年01月18日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包