Python中的图像处理(第三章)数字图像处理基础(1)
前言
随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习方向中各种神经网络的应用,使得Python已经成为最受欢迎的程序设计语言之一。由于完全开源,加上简单易学、易读、易维护、以及其可移植性、解释性、可扩展性、可扩充性、可嵌入性:丰富的库等等,自己在学习与工作中也时常接触到Python,这个系列文章的话主要就是介绍一些在Python中常用一些例程进行仿真演示!
因为自己是做图像语音出身的,所以首先来实现一个简单的图片读取与处理的例程,OpenCV已经在Python上进行了多个版本的维护,所以相比VS,Python的环境配置不会那么繁琐,缺什么库直接安装就可以。本系列文章例程都是基于Python3.8的环境下进行,所以大家在进行借鉴的时候建议最好在3.8.0版本以上进行仿真。首先来对本书第三章的5个例程进行介绍。
一. Python准备
如何确定自己安装好了python
win+R输入cmd进入命令行程序 点击“确定” 输入:python,回车 看到Python相关的版本信息,说明Python安装成功。
二. Python仿真
(1)新建一个chapter03_01.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding:utf-8 -*-
import cv2
#读取图片
img = cv2.imread("Lena.png")
#显示图像
cv2.imshow("Demo", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
保存.py文件 输入eixt()退出python,输入命令行进入工程文件目录
输入以下命令,跑起工程
python chapter03_01.py
没有报错,直接弹出图片,运行成功! (2)新建一个chapter03_02.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding:utf-8 -*-
import cv2
#读取图片
img = cv2.imread("Lena.png")
#显示图像
cv2.imshow("Demo", img)
#无限期等待输入
k=cv2.waitKey(0)
#如果输入ESC按键退出
if k==27:
cv2.destroyAllWindows()
保存.py文件输入以下命令,跑起工程
python chapter03_02.py
没有报错,直接弹出图片,运行成功! 按键盘ESC键,图像显示窗口关闭,退出。
(3)新建一个chapter03_03.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding:utf-8 -*-
import numpy as np
#定义一维数组
a = np.array([2, 0, 1, 5, 8, 3])
print('原始数据:', a)
#输出最大、最小值及形状
print('最小值:', a.min())
print('最大值:', a.max())
print('形状', a.shape)
保存.py文件输入以下命令,跑起工程
python chapter03_03.py
没有报错,直接输出结果数据,运行成功!
(4)新建一个chapter03_04.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding:utf-8 -*-
import cv2
import numpy as np
#创建黑色图像
img = np.zeros((256,256,3), np.uint8)
#显示图像
cv2.imshow("image", img)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
保存.py文件输入以下命令,跑起工程
python chapter03_04.py
没有报错,直接弹出黑色图片,运行成功!
(5)新建一个chapter03_05.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
#生成随机数表示点的坐标
x = np.random.randn(200)
y = np.random.randn(200)
#生成随机点的大小及颜色
size = 50*np.random.randn(200)
colors = np.random.rand(200)
#用来正常显示中文标签
plt.rc('font', family='SimHei', size=13)
#用来正常显示负号
plt.rcParams['axes.unicode_minus'] = False
#绘制散点图
plt.scatter(x, y, s=size, c=colors)
#设置x、y轴名称
plt.xlabel(u"x坐标")
plt.ylabel(u"y坐标")
#绘制标题
plt.title(u"Matplotlib绘制散点图")
#显示图像
plt.show()
保存.py文件输入以下命令,跑起工程
python chapter03_05.py
没有报错,直接弹出图片,运行成功!
三. 小结
在Python中调用OpenCV库进行图片读取,之前在Python小技巧文章中进行过仿真示例,比较简单的图像处理,正好本书的介绍比较系统全面,所以会出一个系列文章进行全系列仿真实现,下一篇文章将继续介绍本章节后续的仿真实例。每天学一个Python小知识,大家一起来学习进步阿!
|