欢迎大家来到“Python从零到壹”,在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界。所有文章都将结合案例、代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望对您有所帮助,文章中不足之处也请海涵。Python系列整体框架包括基础语法10篇、网络爬虫30篇、可视化分析10篇、机器学习20篇、大数据分析20篇、图像识别30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的关注、点赞和转发就是对秀璋最大的支持,知识无价人有情,希望我们都能在人生路上开心快乐、共同成长。

该系列文章主要讲解Python OpenCV图像处理和图像识别知识,前期主要讲解图像处理基础知识、OpenCV基础用法、常用图像绘制方法、图像几何变换等,中期讲解图像处理的各种运算,包括图像点运算、形态学处理、图像锐化、图像增强、图像平滑等,后期研究图像识别、图像分割、图像分类、图像特效处理以及图像处理相关应用。

第一篇文章作为整个系列的引子,将介绍什么是图像处理,图像处理的基础知识,Python语言的优势和OpenCV基础概述。希望文章对您有所帮助,如果有不足之处,还请海涵。接下来,让我们开启整个系列的学习吧!

文章目录

  • 一.什么是图像处理
  • 二.图像处理基础
  • 三.Python语言
  • 四.OpenCV安装和基础
  • 五.总结

下载地址:

  • https://github.com/eastmountyxz/Python-zero2one

前文赏析:

第一部分 基础语法

  • [Python从零到壹] 一.为什么我们要学Python及基础语法详解
  • [Python从零到壹] 二.语法基础之条件语句、循环语句和函数
  • [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象

第二部分 网络爬虫

  • [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例
  • [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解
  • [Python从零到壹] 六.网络爬虫之BeautifulSoup爬取豆瓣TOP250电影详解
  • [Python从零到壹] 七.网络爬虫之Requests爬取豆瓣电影TOP250及CSV存储
  • [Python从零到壹] 八.数据库之MySQL基础知识及操作万字详解
  • [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)
  • [Python从零到壹] 十.网络爬虫之Selenium爬取在线百科知识万字详解(NLP语料构造必备技能)

第三部分 数据分析和机器学习

  • [Python从零到壹] 十一.数据分析之Numpy、Pandas、Matplotlib和Sklearn入门知识万字详解(1)
  • [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)
  • [Python从零到壹] 十三.机器学习之聚类分析万字总结全网首发(K-Means、BIRCH、层次聚类、树状聚类)
  • [Python从零到壹] 十四.机器学习之分类算法三万字总结全网首发(决策树、KNN、SVM、分类算法对比)
  • [Python从零到壹] 十五.文本挖掘之数据预处理、Jieba工具和文本聚类万字详解
  • [Python从零到壹] 十六.文本挖掘之词云热点与LDA主题分布分析万字详解
  • [Python从零到壹] 十七.可视化分析之Matplotlib、Pandas、Echarts入门万字详解
  • [Python从零到壹] 十八.可视化分析之Basemap地图包入门详解
  • [Python从零到壹] 十九.可视化分析之热力图和箱图绘制及应用详解
  • [Python从零到壹] 二十.可视化分析之Seaborn绘图万字详解
  • [Python从零到壹] 二十一.可视化分析之Pyechart绘图万字详解
  • [Python从零到壹] 二十二.可视化分析之OpenGL绘图万字详解
  • [Python从零到壹] 二十三.十大机器学习算法之决策树分类分析详解(1)
  • [Python从零到壹] 二十四.十大机器学习算法之KMeans聚类分析详解(2)
  • [Python从零到壹] 二十五.十大机器学习算法之KNN算法及图像分类详解(3)
  • [Python从零到壹] 二十六.十大机器学习算法之朴素贝叶斯算法及文本分类详解(4)
  • [Python从零到壹] 二十七.十大机器学习算法之线性回归算法分析详解(5)
  • [Python从零到壹] 二十八.十大机器学习算法之SVM算法分析详解(6)
  • [Python从零到壹] 二十九.十大机器学习算法之随机森林算法分析详解(7)
  • [Python从零到壹] 三十.十大机器学习算法之逻辑回归算法及恶意请求检测应用详解(8)
  • [Python从零到壹] 三十一.十大机器学习算法之Boosting和AdaBoost应用详解(9)
  • [Python从零到壹] 三十二.十大机器学习算法之层次聚类和树状图聚类应用详解(10)

第四部分 Python图像处理基础

  • [Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置

第五部分 Python图像运算和图像增强

第六部分 Python图像识别和图像处理经典案例

第七部分 NLP与文本挖掘

第八部分 人工智能入门知识

第九部分 网络攻防与AI安全

第十部分 知识图谱构建实战

扩展部分 人工智能高级案例

作者新开的“娜璋AI安全之家”将专注于Python和安全技术,主要分享Web渗透、系统安全、人工智能、大数据分析、图像识别、恶意代码检测、CVE复现、威胁情报分析等文章。虽然作者是一名技术小白,但会保证每一篇文章都会很用心地撰写,希望这些基础性文章对你有所帮助,在Python和安全路上与大家一起进步。


一.什么是图像处理

数字图像处理(Digital Image Processing)又称为计算机图像处理(Computer Image Processing),旨在将图像信号转换成数字信号并利用计算机对其进行处理的过程。常见的图像处理方法如图1-1所示。

数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,常用的处理方法包括图像增强、复原、编码、压缩等。随着图像处理技术的深入发展,从70年代中期开始,计算机技术和人工智能、思维科学研究迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。现如今,图像处理取得了不少重要的研究成果,其在许多领域(如通信、气象、生物、医学、物理、经济、文化等)已经得到广泛的应用[1-3]。

图像处理系列主要包括三部分,分别是:


二.图像处理基础

图像都是由像素(pixel)构成的,像素表示为图像中的小方格,这些小方格都有一个明确的位置和被分配的色彩数值,而这些小方格的颜色和位置就决定该图像所呈现出来的样子。像素是图像中的最小单位,每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。图1-2表示一张由像素组成的叮当猫。

图像通常分为二值图像、灰度图像和彩色图像,图3-2展示了图像处理经典“Lena”图的各种图像。

(1)二值图像
二值图像又称为黑白图像,图像中任何一个点非黑即白,要么为白色(像素为255),要么为黑色(像素为0)。将灰度图像转换为二值图像的过程,常通过依次遍历判断实现,如果像素大于127则设置为255,否则设置为0。如图1-4所示,一幅二值图像对应的矩阵。

(2)灰度图像
灰度图像是指每个像素的信息由一个量化的灰度级来描述的图像,没有彩色信息,如图1-5所示。改变像素矩阵的RGB值可以实现将彩色图转变为灰度图。常见的方法是将灰度划分为256种不同的颜色,将原来的RGB(R,G,B)中的R、G、B统一替换为Gray,形成新的颜色RGB(Gray,Gray,Gray),即灰度图。将彩色图像转换为灰度图是图像处理的最基本预处理操作。后面的文章将详细介绍不同灰度转换方法的实现过程。

(3)彩色图像
彩色图像是RGB图像,RGB表示红、绿、蓝三原色,计算机里所有颜色都是三原色不同比例组成的,即三色通道。RGB (Red红色,Green 绿色,Blue 蓝色),是根据人眼识别的颜色而定义的空间,可用于表示大部分颜色,也是图像处理中最基本、最常用、面向硬件的颜色空间,是一种光混合的体系。图1-6展示了图像中某一点像素(205,89,68)所对应三原色像的素值,其中R表示红色分量、G表示绿色分量、B表示蓝色分量[4]。


三.Python语言

Python是Guido van Rossum在1989年开发的一门语言,它既是解释性编程语言,又是面向对象的语言,其操作性和可移植性高,被广泛应用于数据挖掘、图像处理、人工智能领域。Python具有语言清晰、容易学习、高效率的数据结构、丰富且功能强大的第三方包等优势。同时,Python语言含有高效率的数据结构,它和其他的面向对象编程语言一样,具有参数、列表表达式、函数、流程控制(循环与分支)、类、对象等功能。Python优雅的语法以及解释性的本质,使其成为一种能在多种功能、多种平台上撰写脚本及快速开发的理想语言[5]。

Python的具体优势如下:

  • 语法清晰,代码友好,易读性好
  • 应用广泛,具有大量的第三方库支持,包括机器学习、人工智能等
  • Python可移植性强,易于操作各种存储数据的文本文件和数据库
  • Python是一门面向对象语言,支持开源思想

本系列主要通过Python调用OpenCV、Matplotlib、Numpy、Sklearn等第三方包实现图像处理,其优雅清晰的语法结构减少了读者的负担,从而大大增强程序的质量。该系列文章采用Python3.7版本实现,并贯穿整个系列的所有代码。同时结合官方的Python解释器进行详细介绍,作者认为官方的解释器能让读者更好地学习基础语法知识,更好地掌握图像处理算法的精髓,从而为后续自己的需求应用提供最大的帮助。图1-7是官方下载地址[6]。

读者可以结合本机的操作系统选择适合的版本,比如作者选择了Windows操作系统下的“Python 3.7.4”版本。

接着双击“python-3.7.4-amd64.exe”软件进行安装,安装过程选择指定路径,按照Python安装向导,点击“Next”按钮即可。

Python提供了集成开发环境(Python Integrated Development Environment,IDLE)供读者编写脚本文件,图1-10展示了IDLE显示print(“Hello World”)代码的效果。

在IDLE界面中点击“File”中“New File”新建文件,并另存为py文件,如“1-1-test.py”,然后编写相关代码并点击运行“Run Module F5”按钮,即可运行Python脚本文件。

# -*- coding:utf-8 -*-
print(2)
print("Hello World")x = 2
y = 4
z = x + y
print(x)
print(y)
print(z)
print(x, y, z)

输出结果如图1-11所示。

这里作者仅简单介绍了Python的优势和安装过程,如果您是一名初学者,建议好好学习Python的基础知识,包括基础语法、数据类型、条件语句、循环语句、函数定义、类定义、面向对象等知识。后续图像处理文章遇到相关知识点,作者也会简要介绍。


四.OpenCV安装和基础

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac 操作系统上。它是一个由C/C++语言编写而成的轻量级并且高效的库,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法[7]。其官方地址为:https://opencv.org/。

该系列文章主要使用Python调用OpenCV2库函数进行图像处理操作,首先告知读者如何在Python编程环境下安装OpenCV库。OpenCV安装主要通过pip指令进行。如图1-12所示,在命令提示符CMD环境下,通过cd命令进入Python安装目录的Scripts文件夹下,再调用下列命令安装。

  • pip install opencv-python

当OpenCV扩展包安装成功后,在Python中输入“import cv2”语句导入该扩展包,测试安装是否成功,如果没有异常报错即安装成功,如图1-13所示。

最后,补充一个简答的图像显示案例,算是这篇文章的结尾。接下来,我们将正式进入“Python图像处理及识别”系列,将从各个方面详细介绍图像处理的相关知识。

# -*- coding:utf-8 -*-
import cv2#读取图片
img = cv2.imread("huawei.png")#显示图像
cv2.imshow("Demo", img)#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()

显示效果如图1-14所示。


五.总结

写到这里,这篇文章就介绍结束。本文主要分享了什么是图像处理、图像处理基础知识、Python语言和OpenCV基础知识。通过这篇文章,初学者可以学会如何安装相关的程序,开启整个系列的学习。同时,大家在学习该系列文章时,一定要自己动手实现所有代码和案例,这才能提升您的编程能力。

感谢在求学路上的同行者,不负遇见,勿忘初心。这周的留言感慨~

十二年CSDN的博客分享,如果要说分享最让我开心的是什么?不是传道,不是授业,也不是解惑,而是接下来这类事。这些年已经陆续鼓励了一些朋友当老师,而昨天得知这一位博友真的去到新疆南疆成为了一名小学老师,我很是感动,是真的感动,六年前我曾鼓励他如果想,就放弃高额工资的互联网大厂,去做自己想做的,没想到已经当了四年老师。又当爹又当妈,国语普及,文化教育,这里面的艰辛不是一两句道得清,除了佩服就是鼓励。
正如你说的一样,“一辈子总得做点有意义的事情,生命实在太短暂,一定要活得积极、正面”。或许,这也是我在CSDN分享博客的最大意义,再比如云南那位老友的留言,“农村的孩子下雨没有伞,只能拼命奔跑”,希望你以后也能成为一名教师,感恩有你们,感谢有你们。我也希望自己早日毕业回到家乡,花上三四十年做好两件事,一是认真教书,二是将少数民族文物抢救和文字语音保护做好,也鼓励更多人一起加入进来。自己虽然很菜吧,但还是有一些喜欢的事,尤其陪伴爱的人,挺好,爱你们喔。2022年继续加油,在CSDN分享更高质量的博客和专栏。

(By:娜璋之家 Eastmount 2022-01-22 夜于贵阳 https://blog.csdn.net/Eastmount )


参考文献:

  • [1]冈萨雷斯. 数字图像处理(第3版)[M]. 北京:电子工业出版社, 2013.
  • [2]阮秋琦. 数字图像处理学(第3版)[M]. 北京:电子工业出版社,2008.
  • [3]百度百科. 图像处理[EB/OL].(2021-12-15). https://baike.baidu.com/item/图像处理/294902.
  • [4]Eastmount. [Python图像处理] 一.图像处理基础知识及OpenCV入门函数[EB/OL]. (2018-08-16). https://blog.csdn.net/Eastmount/article/details/81748802.
  • [5]杨秀璋, 颜娜. Python网络数据爬取及分析从入门到精通(分析篇)[M]. 北京:北京航天航空大学出版社, 2018.
  • [6]Python官网. Welcome to Python.org[EB/OL]. (2022-11-10). https://www.python.org.
  • [7]毛星云, 冷雪飞. OpenCV3编程入门[M]. 北京:电子工业出版社, 2015.

[Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置相关推荐

  1. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. [Python从零到壹] 四十一.图像处理基础篇之图像采样处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. [Python从零到壹] 四十.图像处理基础篇之图像量化处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. [Python从零到壹] 三十九.图像处理基础篇之图像几何变换(镜像仿射透视)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. [Python从零到壹] 三十六.图像处理基础篇之图像算术与逻辑运算详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  7. [Python从零到壹] 三十八.图像处理基础篇之图像几何变换(平移缩放旋转)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. 周末--------粉红色的回忆
  2. VMware虚拟机出现Reason: Failed to lock the file
  3. RTP协议之Header结构解析
  4. 十二、Spark MLlib机器学习
  5. svd奇异值分解_传统推荐算法(一)SVD推荐(1)解读奇异值分解
  6. IIS环境下ShopEx伪静态配置【图文教程+视频教程】
  7. python基于经纬度距离汇聚点_python实现两个经纬度点之间的距离和方位角
  8. Android中更详细的log获取方法
  9. explain ref_explain的属性详解与提速百倍的优化示例
  10. Linux命令(压缩,解压rar)
  11. jmeter监控服务器的方法
  12. 吴恩达机器学习笔记一(Machine learning algorithms)
  13. 8086CPU的寻址方式
  14. 金山办公推出协同办公全家桶 WPS升级为超级工作入口
  15. 计算机网络(四)数据交换方式过程,图文详解、优缺点分析(电路交换、报文交换、分组交换)
  16. 人工智能自动修复图片,模糊图片秒变高清
  17. linux删除桌面图标
  18. 时间序列分析——第三章 资产收益率序列
  19. 楚留香服务器维护,【楚留香】4月20日维护公告
  20. Selenium批量查询运动员技术等级

热门文章

  1. JVisualVM工具查看Java堆的情况
  2. 摄影基础1 : 135相机
  3. 基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
  4. Windows如何查询软件使用的端口号?树莓派怎么查询怎么杀掉进程?
  5. mysql5.7.2.6以上版本没有my.cnf解决办法
  6. pgsql:添加注释与查询注释
  7. 【天池】优惠券使用预测
  8. 刚刚,人类第一次直接“看见”了黑洞
  9. 怎么把收藏夹变成html文件,用Delphi将IE收藏夹导出为HTML文件
  10. 群晖 NAS 通过 frp 实现内网穿透