Python中的图像处理(第六章)Python图像量化及采样处理(2)
Python中的图像处理(第六章)Python图像量化及采样处理(2)
- 前言
- 一. Python准备
- 二. Python仿真
- 三. 小结
前言
随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习方向中各种神经网络的应用,使得Python已经成为最受欢迎的程序设计语言之一。由于完全开源,加上简单易学、易读、易维护、以及其可移植性、解释性、可扩展性、可扩充性、可嵌入性:丰富的库等等,自己在学习与工作中也时常接触到Python,这个系列文章的话主要就是介绍一些在Python中常用一些例程进行仿真演示!
本系列文章主要参考杨秀章老师分享的代码资源,杨老师博客主页是Eastmount,杨老师兴趣广泛,不愧是令人膜拜的大佬,他过成了我理想中的样子,希望以后有机会可以向他请教学习交流。
因为自己是做图像语音出身的,所以结合《Python中的图像处理》,学习一下Python语法相关,OpenCV已经在Python上进行了多个版本的维护,所以相比VS,Python的环境配置相对简单,缺什么库直接安装即可。本系列文章例程都是基于Python3.8的环境下进行,所以大家在进行借鉴的时候建议最好在3.8.0版本以上进行仿真。本文继续来对本书第六章的最后5个例程进行介绍。
一. Python准备
如何确定自己安装好了python
win+R输入cmd进入命令行程序
点击“确定”
输入:python,回车
看到Python相关的版本信息,说明Python安装成功。
二. Python仿真
(1)新建一个chapter06_06.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -- coding:utf-8 --
# BY:Eastmount CSDN 2020-11-10
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取原始图像
im = cv2.imread('people.png', 1)#设置鼠标左键开启
en = False#鼠标事件
def draw(event, x, y, flags, param):global en#鼠标左键按下开启en值if event==cv2.EVENT_LBUTTONDOWN:en = True#鼠标左键按下并且移动elif event==cv2.EVENT_MOUSEMOVE and flags==cv2.EVENT_LBUTTONDOWN:#调用函数打马赛克if en:drawMask(y,x)#鼠标左键弹起结束操作elif event==cv2.EVENT_LBUTTONUP:en = False#图像局部采样操作
def drawMask(x, y, size=10):#size*size采样处理m = int(x / size * size)n = int(y / size * size)print(m, n)#10*10区域设置为同一像素值for i in range(size):for j in range(size):im[m+i][n+j] = im[m][n]#打开对话框
cv2.namedWindow('image')#调用draw函数设置鼠标操作
cv2.setMouseCallback('image', draw)#循环处理
while(1):cv2.imshow('image', im)#按ESC键退出if cv2.waitKey(10)&0xFF==27:break#按s键保存图片elif cv2.waitKey(10)&0xFF==115:cv2.imwrite('sava.png', im)#退出窗口
cv2.destroyAllWindows()
保存.py文件
输入eixt()退出python,输入命令行进入工程文件目录
输入以下命令,跑起工程
python chapter06_06.py
没有报错,直接弹出图片,运行成功!
在图像上按下鼠标,即可进行采样并覆盖后续鼠标移动位置,类似于常见的在美图秀秀等修图软件上的背景擦除功能
同时,控制台界面打印处理像素位置数据信息
按s键保存图片,按ESC键退出
(2)新建一个chapter06_07.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding: utf-8 -*-
# BY:Eastmount CSDN 2020-11-10
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取原始图像
img = cv2.imread('nv.png')#图像向下取样
r = cv2.pyrDown(img)#显示图像
cv2.imshow('original', img)
cv2.imshow('PyrDown', r)
cv2.waitKey()
cv2.destroyAllWindows()
保存.py文件输入以下命令,跑起工程
python chapter06_07.py
没有报错,直接弹出图片,运行成功!
(3)新建一个chapter06_08.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取原始图像
img = cv2.imread('nv.png')#图像向下取样
r1 = cv2.pyrDown(img)
r2 = cv2.pyrDown(r1)
r3 = cv2.pyrDown(r2)#显示图像
cv2.imshow('original', img)
cv2.imshow('PyrDown1', r1)
cv2.imshow('PyrDown2', r2)
cv2.imshow('PyrDown3', r3)
cv2.waitKey()
cv2.destroyAllWindows()
保存.py文件输入以下命令,跑起工程
python chapter06_08.py
没有报错,直接弹出图片,运行成功!
(4)新建一个chapter06_09.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding: utf-8 -*-
# BY:Eastmount CSDN 2020-11-10
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取原始图像
img = cv2.imread('lena.png')#图像向上取样
r = cv2.pyrUp(img)#显示图像
cv2.imshow('original', img)
cv2.imshow('PyrUp', r)
cv2.waitKey()
cv2.destroyAllWindows()
保存.py文件输入以下命令,跑起工程
python chapter06_09.py
没有报错,直接弹出图片,运行成功!
(5)新建一个chapter06_10.py文件,输入以下代码,图片也放在与.py文件同级文件夹下
# -*- coding: utf-8 -*-
import cv2
import numpy as np
import matplotlib.pyplot as plt#读取原始图像
img = cv2.imread('lena2.png')#图像向上取样
r1 = cv2.pyrUp(img)
r2 = cv2.pyrUp(r1)
r3 = cv2.pyrUp(r2)#显示图像
cv2.imshow('original', img)
cv2.imshow('PyrUp1', r1)
cv2.imshow('PyrUp2', r2)
cv2.imshow('PyrUp3', r3)
cv2.waitKey()
cv2.destroyAllWindows()
保存.py文件输入以下命令,跑起工程
python chapter06_10.py
没有报错,直接弹出图片,运行成功!
三. 小结
本文主要介绍在Python中调用OpenCV库对图像进行采样覆盖,以及对图像进行简单下采样与上采样的量化的处理过程,感兴趣的还是建议去原书第六章深入学习理解。由于本书的介绍比较系统全面,所以会出一个系列文章进行全系列仿真实现,下一篇文章将继续介绍第七章节的5例仿真实例。每天学一个Python小知识,大家一起来学习进步阿!
本系列示例主要参考杨老师GitHub源码,安利一下地址:ImageProcessing-Python(喜欢记得给个star哈!)
Python中的图像处理(第六章)Python图像量化及采样处理(2)相关推荐
- Python中的图像处理(第九章)Python图像增强
Python中的图像处理(第九章)Python图像增强 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Pyth ...
- Python中常用图像处理库
Python中常用图像处理库 文章目录 Python中常用图像处理库 1 OpenCV-Python 2 Numpy 3 matplotlib 4 skimage 5 PIL(Python Imagi ...
- Python中的图像处理(第十一章)Python图像锐化及边缘检测(1)
Python中的图像处理(第十一章)Python图像锐化及边缘检测(1) 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断 ...
- python字符串分片_Python第六章字符串ppt
PPT内容 这是Python第六章字符串ppt,包括了概述,通用序列操作,字符串格式化,字符串方法,正则表达式简介等内容,欢迎点击下载. Python语言编程导论 第六章 字符串 内容提要 概述 通 ...
- 数字图像处理——实验一 Python中数字图像处理的基本操作
数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...
- 数字图像处理——第六章 彩色图像处理
数字图像处理--第六章 彩色图像处理 文章目录 数字图像处理--第六章 彩色图像处理 1 彩色模型 1.1 RGB彩色模型 1.2 CMY 和CMYK彩色模型 1.3 HSI彩色模型 2 伪彩色图像处 ...
- Python图像处理丨带你认识图像量化处理及局部马赛克特效
摘要:本文主要讲述如何进行图像量化处理和采样处理及局部马赛克特效. 本文分享自华为云社区<[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效>,作者: eastmoun ...
- [Python图像处理] 三十.图像量化及采样处理万字详细总结(推荐)
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 数字图像处理第六章——彩色图像处理(上)
数字图像处理第六章 数字图像处理---彩色图像处理 (一) 在 MATLAB 中彩色图像的表示 1.1 RGB图像 1.2 索引图像 1.3 处理 RGB图像和索引 (二)彩色空间之间的转换 2.1 ...
最新文章
- python的翻译-python写的翻译代码
- C# WPF MVVM开发框架Caliburn.Micro View / View Model 命名⑨
- html页面之间传参乱码,急求教,在两个htm页面传参数时中文出现了乱码,试了网上的方法不管用。_html/css_WEB-ITnose...
- Bootstrap 标准的分页导航
- Visual Entity 手册(一)简介
- 公有云、私有云、混合云的区别比较
- [幽默漫画]对于程序猿来说deadline很容易搞定!
- 2014年10月30日-----SQL的基础知识
- [转]程序员资料整理
- 怎么用python找资料_python去哪里找资源教程学习?
- SQLEXPRESS的连接字符串
- linux启动supervisord服务,supervisord进程管理服务
- Unity图片格式转换
- Android--- Drawer and Tab Navigation with ViewPager
- Hadoop与spark性能比较试验
- Python中print换行问题
- 一般人我都不告诉他们
- 区块链将如何彻底改变自动驾驶
- 贪吃蛇(C语言版)链表实现
- echars 3D地图为区域自定义颜色
热门文章
- 全球顶级手游开发商向数据极客们发出赛事邀请,用数据分析玩家行为,赢取十万大奖!...
- 【从零开始vnpy量化投资】三. 手动安装vnpy环境
- java实现qq邮箱发送附件和图片
- 有哪些产品适合做引流?什么样的产品才适合做引流款
- 上顿号符号_顿号在键盘上怎么打 常见的电脑符号输入方法说明
- win10开机显示无网络连接服务器,Win10开机无法连接网络
- 从裁员到扩招/从自研到生态,汽车行业新年新气象
- Linux防火墙关闭方法
- requests模块下
- 商科能读计算机专业吗,我本科读的计算机 想去新西兰留学可以换专业吗? 没分了跪求啊,...