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)相关推荐

  1. Python中的图像处理(第九章)Python图像增强

    Python中的图像处理(第九章)Python图像增强 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Pyth ...

  2. Python中常用图像处理库

    Python中常用图像处理库 文章目录 Python中常用图像处理库 1 OpenCV-Python 2 Numpy 3 matplotlib 4 skimage 5 PIL(Python Imagi ...

  3. Python中的图像处理(第十一章)Python图像锐化及边缘检测(1)

    Python中的图像处理(第十一章)Python图像锐化及边缘检测(1) 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断 ...

  4. python字符串分片_Python第六章字符串ppt

    PPT内容 这是Python第六章字符串ppt,包括了概述,通用序列操作,字符串格式化,字符串方法,正则表达式简介等内容,欢迎点击下载. Python语言编程导论 第六章  字符串 内容提要 概述 通 ...

  5. 数字图像处理——实验一 Python中数字图像处理的基本操作

    数字图像处理--实验一 Python中数字图像处理的基本操作 一.实验目的 二.实验主要仪器设备 三.实验原理 3.1 数字图像的表示和类别 3.2 opencv-python图像文件格式 四.实验内 ...

  6. 数字图像处理——第六章 彩色图像处理

    数字图像处理--第六章 彩色图像处理 文章目录 数字图像处理--第六章 彩色图像处理 1 彩色模型 1.1 RGB彩色模型 1.2 CMY 和CMYK彩色模型 1.3 HSI彩色模型 2 伪彩色图像处 ...

  7. Python图像处理丨带你认识图像量化处理及局部马赛克特效

    摘要:本文主要讲述如何进行图像量化处理和采样处理及局部马赛克特效. 本文分享自华为云社区<[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效>,作者: eastmoun ...

  8. [Python图像处理] 三十.图像量化及采样处理万字详细总结(推荐)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. 数字图像处理第六章——彩色图像处理(上)

    数字图像处理第六章 数字图像处理---彩色图像处理 (一) 在 MATLAB 中彩色图像的表示 1.1 RGB图像 1.2 索引图像 1.3 处理 RGB图像和索引 (二)彩色空间之间的转换 2.1 ...

最新文章

  1. python的翻译-python写的翻译代码
  2. C# WPF MVVM开发框架Caliburn.Micro View / View Model 命名⑨
  3. html页面之间传参乱码,急求教,在两个htm页面传参数时中文出现了乱码,试了网上的方法不管用。_html/css_WEB-ITnose...
  4. Bootstrap 标准的分页导航
  5. Visual Entity 手册(一)简介
  6. 公有云、私有云、混合云的区别比较
  7. [幽默漫画]对于程序猿来说deadline很容易搞定!
  8. 2014年10月30日-----SQL的基础知识
  9. [转]程序员资料整理
  10. 怎么用python找资料_python去哪里找资源教程学习?
  11. SQLEXPRESS的连接字符串
  12. linux启动supervisord服务,supervisord进程管理服务
  13. Unity图片格式转换
  14. Android--- Drawer and Tab Navigation with ViewPager
  15. Hadoop与spark性能比较试验
  16. Python中print换行问题
  17. 一般人我都不告诉他们
  18. 区块链将如何彻底改变自动驾驶
  19. 贪吃蛇(C语言版)链表实现
  20. echars 3D地图为区域自定义颜色

热门文章

  1. 全球顶级手游开发商向数据极客们发出赛事邀请,用数据分析玩家行为,赢取十万大奖!...
  2. 【从零开始vnpy量化投资】三. 手动安装vnpy环境
  3. java实现qq邮箱发送附件和图片
  4. 有哪些产品适合做引流?什么样的产品才适合做引流款
  5. 上顿号符号_顿号在键盘上怎么打 常见的电脑符号输入方法说明
  6. win10开机显示无网络连接服务器,Win10开机无法连接网络
  7. 从裁员到扩招/从自研到生态,汽车行业新年新气象
  8. Linux防火墙关闭方法
  9. requests模块下
  10. 商科能读计算机专业吗,我本科读的计算机 想去新西兰留学可以换专业吗? 没分了跪求啊,...