OpenCV图像处理技术(微课版)课件项目1-7数字图像处理基础-图像金字塔_第1页
OpenCV图像处理技术(微课版)课件项目1-7数字图像处理基础-图像金字塔_第2页
OpenCV图像处理技术(微课版)课件项目1-7数字图像处理基础-图像金字塔_第3页
OpenCV图像处理技术(微课版)课件项目1-7数字图像处理基础-图像金字塔_第4页
OpenCV图像处理技术(微课版)课件项目1-7数字图像处理基础-图像金字塔_第5页
已阅读5页,还剩243页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/

/

/

/

/

/

/

用OpenCV图像处理技术项目一数字图像处理基础(一)考核过程性考核占60%终结性考核占40%课上课后作业(40%)课堂表现(10%)考勤(10%)综合考核40%未按时交或缺交扣10分/次满分100分,表现突出加3-5分/次迟到或早退扣10分/次旷课20分/次O

p

e

n

C

V课前任务思考与查找:前面已经学习了《人工智能基础》、

《Python

程序设计》,学图像处理

技术有什么用?O

p

e

n

C

V获取图像轮廓图像融合

图像对比度均衡提取图像轮廓图像分割

霍夫变换模板匹配特定目标分析检测直线、圆形等几何图形重复图案检测视频处理口罩佩戴检测等O

p

e

n

CV数字图像处理技术形态学处理去除文章标注边缘检测基础概愈特定颜色检测平滑处理去除噪声图像金字塔色彩空间单寸照换背景几何变换图片放大缩小图像轮廊图像运算面部打码阈值处理提取关键区域直方图处理数字图像处理基本知识点图像处理工程师(莱斯信息)南京菜斯信息技术段份有限公司8000-12000元月血投五险-南素【本科13-5年4天发布于猫聘图像处理算法工程师广州制给信息科技有限公司6001-8000

元/月南宁(本科11-3年作天发布于指础人才网图像处理北京系新环保有限公司面议西中(中专|不限的天发布于环保莫才视频图像处理算法工程师(上海哔哩哔哩科.上W

理科接有限公司20000-40000元月上霉!本科13-5年(E险-盒交)

a)4天发布于拉勾网图像处理工程师(深圳显扬科技有限公司)探圳思肠科技有限公司8000-12000元月(直投深明(本科1不限五

-今天发布于借聘图像处理机器视觉软件工程师(深圳市华腾…探圳市华腾半导体设备有限公司12000-20000元月(直段)探圳本科13-5年五

-

鱼4天发布于留聘图像处理及调优工程师广东亿嘉和科技有限公司20000-40000元月(伊探拥|本科13-5年五险一金用年假B

日利02-24发布于智通人才网FPGA

图像处理工程师探圳市玩视科技有限公司16000

-32000

元/月成都!本科以上I1-3年昨天发布于中国人才热线图像处理算法工程师(厦门美柚股份有限公…

20000-40000元月

保五险一金需游年假年能项医学图像处理工程师(南京景三医疗科技有

.20000-40000元

(交通补贴)年将分红)(墙效奖金)南原暖三医疗科技有限公司

上海本科13-5年4天发布于位勾网

薪酬待遇厦门美植股份有限公司厘门1本科|不限4天发布于位勾网0

p

e

n

C

V能力要求1.有图像处理、机器学习相关的学习和研究经历,具有较好的数学和算法基础;2.熟悉Python、C/C++、Java

等语言,熟练使用OpenCV等视觉库,掌握图像处理

的接口函数、深入了解OpenCV

部分源码;3.熟悉Ubuntu

、redhat

等系统下深度学习环境搭建及yolo

、caffe-ssd

、caffe-

faster-rcnn等深度学习模型训练,并能进行调优;4

.强大的学习能力,能快速掌握新技术并理解其运用场景;5.根据业务需求,设计并实现新的算法。O

p

e

n

C

V○

图像处理技术O

p

e

n

C

V眼之所见即为所求○图像处理技术O

p

e

n

CV层层深入,化繁为简手掌

二值化

凸包特征点感兴趣区域自适应阈值>数字图像处理技术图像处理技术人工智能分析○O

p

e

n

CV○

图像处理技术沉渣细胞分析

肋骨三维重建图像处理腹部CT

股骨与血管O

p

e

n

C

V图像获取、显示以及相关信息获取图像像素访问与修改重难点O

p

e

n

CV01数字图像02

OpenCV03

图像读取、显示、保存04

图像像素处理目录CONTENTSO

p

e

n

C

V01数字图像人

/

/

/

/

/

/

/

用D

A1

知识储备:数字图像图

客观世界物体反射或透射光的分布,是客观世界的反映像人类视觉系统对图的响应,是人的大脑的印象或认识,是人的感觉的一种The

Dog'sView透过现象观察本质700600

500400Wavelength(nm)TheHuman'sViewO

p

e

n

CV1知识储备:数字图像O

p

e

n

CV数字图像由二维的元素组成每个元素包含一个坐标以及响应值知识储备:数字图像1O

p

e

n

C

V数字图像处理针对特定任务提升图像的可理解性知识储备:数字图像1O

p

e

n

C

V1知识储备:数字图像图像处理

图像分析

图像理解O

p

e

n

C

V1知识储备:数字图像喵汪汪喵

汪喵O

p

e

n

C

V1知识储备:数字图像(205,89,68)122173

255129

115184

5118

248174

41125

198[202196

92

109|100126179

58125

41686718524237551956220823211086

20646

5241

16460

1499

4523135421715134151144Lena564019422O

p

e

n

C

V24518002

OpenCVP

A

/

/

/

/

/

/

/

用研究员Gary

Bradski在为英特尔时注意到MIT

的媒体实验室,拥有非常完备的内部公开的

计算机视觉开发接口——代码从一个学生传到另

一个学生手中,并且会给每个新来的学生一个有

价值的由他们自己开发的视觉应用方案。知识储备:OpenCV2起源O

p

e

n

C

V●为高级的视觉研究提供开源并且优化过的基础代码,不再

需要重复造轮子。●以提供开发者可以在此基础上进行开发的通用接口为手段

传播视觉相关知识,这样代码有更强的可读性和移植性。●以创造可移植的、优化过的免费开源代码来推动基于高级

视觉的商业应用,这些代码可以自由使用,不要求商业应用程序开放或免费。知识储备:OpenCV2目标O

p

e

n

C

V善假于物,胜于闭门造车知识储备:OpenCV2O

p

e

n

C

V超分辨图像拼接异构与并行计算机器学习对象检测维可视化深度神经网络分割与正配ImageprocessingCoreImgcodecsHigh-levelGUIVideoI/O2

知识储备:OpenCV扩展模块2D

取相机矫正与三维重建视频分析O

p

e

n

C

VPython+Anaconda+PyCharm的安装和基本使用:/video/BV1K7411c7EL?p=3OpenCV的安装方法:pipinstallopencv-python==6pipinstallopencv-contrib-python==0知识储备:OpenCV2O

p

e

n

C

V03图像读取、显示、保存T

H

R

E

日人

/

/

/

/

/

/

/

用3

图像读取、显示、保存

图像读取cv2.imread('cat.jpg')

图像显示

cv2.imread('cat.jpg',cv2.IMREAD_GRAYSCALE)cv2.imread('cat.jpg',cv2.IMREAD_COLOR)

图像保存O

p

e

n

C

V3

图像读取、显示、保存

图像读取cv2.imshow(name,img)

图像显示

cv2.waitKey(0)cv2.destroyAIIWindows()

图像保存O

p

e

n

C

V3

图像读取、显示、保存

图像读取

图像显示

cv2.imwrite('mycat2.png',img)

图像保存O

p

e

n

C

V图像读取任务小结:imread()读取不同类型图像图像显示imshow()显示窗口与关闭imwrite()

保存图像图像保存3图像读取、显示、保存O

p

e

n

C

V

图像读取

图像显示

图像保存任务实施:根据任务书完成图像读取、显示、保存3

图像读取、显示、保存O

p

e

n

C

V04图像像素处理P

A人

/

/

/

/

/

/

/

用数字图像由二维的元素组成每个元素包含一个坐标以及响应值修改每个坐标对应的响应值,即可

修改整体的图像像素分布见微知著,以小见大知识储备:图像像素值修改的意义1O

p

e

n

C

Vimportcv2img=cv2.imread('dcz.jpg')#读取图片

###学会模块化编程,此处用于填写处理代码###cv2.imshow('dcz',img)#显示图片cv2.waitKey(0)cv2.destroyAIIWindows()读取与显示获取图像形状循环遍历1

任务一:获取图像中的单个像素O

p

e

n

C

Vimportcv2img=cv2.imread('dcz.jpg')#读取图片###h,w,C=img.shape#获取图像的长和宽及通道数目###cv2.imshow('dcz',img)#显示图片cv2.waitKey(0)cv2.destroyAIIWindows()读取与显示获取图像形状循环遍历1

任务一:获取图像中的单个像素O

p

e

n

C

Vimportcv2img=Cv2.imread('dcz.jpg')#读取图片###h,w,c=img.shapefor

i

inrange(0,h):#根据长宽通道数进行遍历

forjin

range(0,w):fork

in

range(0,c):print(img[i,j,k])#输出每个像素对应的像素值###cv2.imshow('dcz',img)#显示图片cv2.waitKey(0)cv2.destroyAlIWindows()读取与显示获取图像形状循环遍历1

任务一:获取图像中的单个像素O

p

e

n

C

V1

练习:修改像素点的值像素访问将每个像素的像素值加10像素修改O

p

e

n

C

V8位图像的像素值分布在[0-255]之间,有时候为了突出显示关键信息,需要对像

素值进行筛选,比方说提取[80-150]区间

内的像素值。抓住关键,解决问题知识储备:提取关键信息2O

p

e

n

C

V分析数据编写程序优化程序眼镜大致在高350至520,宽220至670,区域根据的位置信息,

编程如下。任务二:获取dczjpg

中眼镜部分2)O

p

e

n

C

Vimport

cv2src=Cv2.imread('.\sucai1\dcz.jpg')glasses=src[350:520,220:670]#将眼镜RO1

赋值给变量glassescv2.imshow("glasses",glasses)cv2.waitKey(0)cv2.destroyAlIWindows()运行结果如图1.32所示。分析数据编写程序优化程序2

任务二:获取dczjpg

中眼镜部分O

p

e

n

C

Vimport

cv2import

numpy

as

npmask=np.random.randint(0,255,(100,200,3),dtype

=np.uint8)11I0,255:表示生成的像素值区间为0-255(100,200,3):表示长为100,宽为200,通道

数为3,dtype=np.uint8:表示生成的图像为8位图像1cv2.imshow("mask",mask)cv2.waitKey(0)cv2.destroyAlIWindows()分析数据编写程序优化程序2

任务二:获取dczjpg

中眼镜部分O

p

e

n

C

V分析数据编写程序优化程序任务二:获取dczjpg

中眼镜部分练习:根据上述马赛克生成方法,将dcz.jpg眼睛部分进行马赛克处理。结2果如图所示。O

p

e

n

C

V人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目二

图像运算(一)课前任务将“LinuxLogo.jpg”与(“WindowsLogo.jpg”相加,查看结果,对比

前后像素变化并举例解释:img1=cv2.imread("LinuxLogojpg")img2=cv2.imread("WindowsLogo.jpg")img3=img1+img2cv2.imshow("add",img3)O

p

e

n

C

V01

算术运算

图像淡入淡出效果目录CONTENTSO

p

e

n

C

V加权运算,加乘运算代码实现图像淡入淡出效果重难点O

p

e

n

C

Vimg1算术运算img2逻辑运算MASK“大小一致”O

p

e

n

C

V0000000110011100110000000知识储备:图像运算562821213122823281675858167213123561671232131675624213121021352428242856123562101451635816712321324238320838187562823281201算术运算P

A人

/

/

/

/

/

/

/

用加

除学会观察,提炼原理O

p

e

n

C

V1知识储备:算术运算1知识储备:算术运算十

cv2.add

()img1×

“+”对比分析学会总结5628-232812·b≤255

b>25512356210145163238320838187242131210213558167123213242428242856img2O

p

e

n

C

V?cv2.add()cv2.subtract()1知识储备:算术运算O

p

e

n

C

Vcv2.add()cv2.subtract()

cv2.divide()知识储备:算术运算1O

p

e

n

C

Vcv2.add()cv2.subtract()

cv2.divide()

cv2.multiply()知识储备:算术运算1O

p

e

n

C

V加权和cv22.addWeighted

(src1,alpha,src2,beta,gamma)O

p

e

n

C

V加

减乘除addsubtractdividemultiply知识储备:数字图像102图像淡入淡出效果人

/

/

/

/

/

/

/

用defcontrast_brightness_demo(image,c,b):h,w,ch

=image.shapeblank

=np.zeros([h,w,ch],image.dtype)dst=cv2.addWeighted(image,c,blank,1-c,b)cv2.imshow("con-bri-demo",dst)知识储备:cv2.addWeighted()实战操作任务

一:

实现PS

·图像调整20

p

e

n

C

V2任务—:实现PS·图像调整任务一:拓展练习使用addWeighted()函数,实现两幅照片“淡化效果”切换。举一反三,巩固新知O

p

e

n

C

V人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目二

图像运算(二)图像像素值的本质是0与1,请问251的二进制值是多少如:255=(11111111)B255/2=127=====余1127/2=63======余163/2=31=======余131/2=15=======余115/2=7========余17/2=3=========余13/2=1=========余11/2=0=========余1课前导入O

p

e

n

CV

逻辑运算

隐藏的秘密:数字水印目录CONTENTSO

p

e

n

C

V重难点逻辑运算图像加密O

p

e

n

C

V01逻辑运算人

/

/

/

/

/

/

/

用1知识储备:逻辑运算与或

异或

取反类比学习,做好假设O

p

e

n

C

V算子1算子2与

·

结果与

·

规则或

·

结果或

·

规则000and(0,0)=00and(0,0)=0010and(0,1)=01and(0,1)=1100and(1,0)=01and(1,0)=1111and(1,1)=11and(1,1)=1知识储备:逻辑运算异或取反与或1O

p

e

n

C

V算子1算子2与

·

结果与

·

规则或

·

结果或

·

规则000and(0,0)=00and(0,0)=0010and(0,1)=01and(0,1)=1100and(1,0)=01and(1,0)=1111and(1,1)=11and(1,1)=1数值十进制值二进制值数值119811000110数值221911011011按位或运算结果22311011111按位与运算结果19411000010知识储备:逻辑运算异或取反与或1O

p

e

n

C

Vbitwise_and()bitwise_or()1知识储备:逻辑运算异或取反与

或O

p

e

n

C

V数值十进制值二进制值数值119811000110数值221911011011按位异或运算结果2900011101取反

bitwise_xor()1知识储备:逻辑运算与

或异或O

p

e

n

C

V说明十进制值二进制值原始数值19811000110按位非运算结果5700111001取反

bitwise_not()1知识储备:逻辑运算与

或异或O

p

e

n

C

V1知识储备:逻辑运算与

bitwise_and()或

bitwise_or()异或

bitwise_xor()取反

bitwise_not()O

p

e

n

C

V101011001010100000111000XOR0001011001011001001010000001101100110000011101114024164142971108321313217715615256702699162100001001011000110011100100110000011100001000110000110100110.001110100010172168562289402748119001010000001100010100100100011100110000101101110000000010101001111010101图像A

的二进制表示为AB,其像素值为:图像K

的二进制表示为KB,其像素值为:接下来实现图像AB

和图像KB的按位异或运算得到AKB:

图像AKB转换为十进制图像AK:假设有需要加密的原始图像A,

其像素值为:加密密钥图像为K,其像素值为:知识储备:图像加密https://tool.lu/hexconvert/1O

p

e

n

C

V40241641429711083213172168562289402748119101011001010100000111000000101100101100100101000000110110011000001110111可以发现,x

图像和原来的图像A

完全一致。该过程详细解释了8位图像的加密和解密过程。在实际应

用中,收发双方应该事先的规定好密钥图像,发送方利用密钥图像将图片加密,将密文发给接收方,

然后接收方接到密文,然后用密钥进行解密,最终得到原始图像。可以看出将A图像加密后的图像AK已经发生了本质的变换,下面将AKB图像继续和密钥图像KB进行按

位异或运算,得到图像XB:观察本质透过现象知识储备:图像加密1图

像AKB转换为十进制图像AK:将图像XB转换为十进制图像X:O

p

e

n

C

V人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目三色彩空间与几何变换(一)阅读教材54页及自行搜索,了解RGB、GRAY、HSV、RGBA颜

色空间的概念红紫

黑蓝

绿课前任务O

p

e

n

C

V01

色彩空间02实现颜色提取:提取指定颜色物体目录CONTENTSO

p

e

n

C

V提取特定颜色的物体,实现图像的几何矫正色彩空间的相互转换,几何变换的应用重难点O

p

e

n

C

V01色彩空间P

A人

/

/

/

/

/

/

/

用1)

任务—:图像类型转换任务一

图像类型转换使用cvtColor()函数,实现各种颜色空间的转换。O

p

e

n

C

V(0,0,0)~(255,255,255)表示。RGB

空间是生活中最常用的一个

模型,电视机、电脑的显示器等大部分

都是采用这种模型。自然界中的任何一

种颜色都可以由红、绿、蓝三种色光混

合而成。RGB颜色空间以R(Red:红)、G(Green:绿)、B(Blue:蓝)三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。通常的用知识储备:RGB色彩空间1O

p

e

n

C

V灰度化顾名思义就是将图片变为灰色,在OpenCV

中可以用cvtColor函数将图像进行灰度化,但这里并不使用该函数,而是采用计算公式:Y=0.2126*R+0.7152*G+0.0722*B,RGB

分别为彩色图像的三通道GRAY颜色空间(灰度图像)通常指8位灰度图,具有256个灰度级,像素值的范围为[0,255]。所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。知识储备:GRAY色彩空间1O

p

e

n

C

V1

知识储备:HSV

色彩空间HSV(Hue,Saturation,Value)是根据颜色的直观特性创建的一种颜色空间,也称六角

锥体模型。这个模型中颜色的参数分别是:色调(H),

度(S),

度(V)。色调:不同波长的光表现为不同的颜色,[0,360]。饱和度:表示颜色接近光谱色的程度,[0,1]。亮度:人眼感受到的光的明暗程度,[0,100]。色调10O

p

e

n

C

V1饱和度亮度BGR与RGBBGR与灰度

BGR与HSVO

p

e

n

C

V知识储备:类型转换函数1dst=cv2.cvtColor(src,cv2.COLOR

BGR2RGB)dst=cv2.cvtColor(src,cv2.COLOR

RGB2BGR)BGR与RGBBGR

与灰度BGR与HSV1知识储备:类型转换函数O

p

e

n

C

Vdst=cv2.cvtColor(src,cv2.COLOR

BGR2GRAY)dst=cv2.cvtColor(src,cv2.COLOR

GRAY2BGR)BGR与RGBBGR

与灰度BGR与HSV1知识储备:类型转换函数O

p

e

n

C

Vdst=cv2.cvtColor(src,cv2.COLOR

BGR2HSV)dst=cv2.cvtColor(src,cv2.COLOR

HSV2BGR)BGR与RGBBGR

与灰度BGR与HSV1知识储备:类型转换函数O

p

e

n

C

V实现颜色提取:提取指定颜色物体人

/

/智

/

/

/

/

/

用02黑灰白红橙黄绿青蓝紫hmin000015611263578100125hmax180180180101802534;7799124155smin00043434343434343smax2554330255255255255255255255vmin04622146464646464646vmax46220255255255255255255255255知识储备:HSV

颜色表H:0—180S:0—255V:0—255此处把部分红色归为紫色范围:任务二:提取指定颜色20

p

e

n

C

V2任务二:提取指定颜色知识储备:cv2.inRange()

函数详解语

:dst=cv2.inRange(src,lowerb,upperb),lowerb为范围下界,upperb

为范围上界作用:判断图像内的像素点的像素值是否在指定的范围内O

p

e

n

C

V课前任务预习几何变换的概念O

p

e

n

C

V人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目三色彩空间与几何变换(二)阅读教材及自行搜索,了解图像几何变换的概念课前任务O

p

e

n

C

V01

几何变换

实现图像的几何变换目录CONTENTSO

p

e

n

C

V实现图像的几何矫正重难点几何变换的应用O

p

e

n

C

V01几何变换P

A人

/

/

/

/

/

/

/

用1)任务三:简单的几何变换几何变换是指将一幅图像映射到另外一幅图像内的操作。

本任务主要介绍的映射关系划分为缩放、翻转、仿射、透视、重映射

等。O

p

e

n

C

Vsrc:

原图dsize:

输出图像的大小fx:水平方向的缩放比例fy:

垂直方向的缩放比例interpolation:

插值方法cv2.resize(src,dsize[,fx[,fy[,interpolation]]])缩放翻转仿射透视知识储备:简单的几何变换1O

p

e

n

C

Vsrc:

原图flipCode:旋转类型(实验)缩放翻转仿射透视cv2.flip(src,flipCode)知识储备:简单的几何变换1O

p

e

n

C

V指图像可以通过一系列的几何变换来实现平移、旋转等

多种操作。cv2.warpAffine()10x=10001y=200缩放翻转仿射透视知识储备:简单的几何变换1O

p

e

n

C

Vcv2.warpAffine(src,M,dsize)src:原图M:

表示变换矩阵,反映平移或翻转的关系,为一

个2×3的矩阵dsize:输出图像的画布大小缩放翻转仿射透视1

知识储备:简单的几何变换0

p

e

n

C

V0------?M

构造方法--平移向右侧移动x个像素,向下侧移动y个像素M=np.float32([[1,0,x],[0,1,y]])缩放翻转。仿射透视知识储备:简单的几何变换10

p

e

n

C

VM构造方法--旋转M=cv2.getRotationMatrix2D(center,angle,scale)center

:表示旋转中心。angle:

表示旋转角度,正数表示逆时针旋转,负数

表示顺时针旋转。scale:表示变换尺度,即缩放大小。缩放翻转仿射透视1

知识储备:简单的几何变换O

p

e

n

C

V1知识储备:简单的几何变换缩放将矩形映射为任意四边形cv2.warpPerspective()翻转仿射透视O

p

e

n

C

V决递哥o---lli?将矩形映射为任意四边形cv2.warpPerspective(src,M,dsize)src:

表示原始输入图像。M:

表示变换矩阵,为一个3×3的矩阵。dsize:

表示输出图像的大小。缩放翻转仿射透视1

知识储备:简单的几何变换O

p

e

n

C

V核心还是构造转换矩阵MM=cv2.getPerspectiveTransform(pts_o,pts_d)pts

o:表示输出图像的4个顶点坐标。pts_d:表示原始输入图像的4个顶点坐标。缩放翻转仿射透视1

知识储备:简单的几何变换O

p

e

n

C

Vpts_o=np.float32([[x1,y1],[x2,y2],[x3,y3],[x4,y4]

])pts_d=np.float32([[0,0],[w,0],[0,h],[w,h]])O

p

e

n

C

V(0,h)

(w,h)知识储备:简单的几何变换(0,0)

(w,O)1作业将lenajpg

转换为灰度图像,应用缩放、翻转

、平移、旋转、透视等相关知识进行实验,并

撰写实验报告O

p

e

n

C

V人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目四阈值与平滑处理(一)课前任务如何用像素级操作,将peppa.jpg

中像素值小于180的设置为黑色,大于等

于180的的像素值设置为白色。图像处理的本质就是像素处理O

p

e

n

C

V01

阈值处理

使用滑块调整阈值大小目录CONTENTSO

p

e

n

C

V阈值选定与处理、模糊处理重难点卷积概念O

p

e

n

C

V01阈值处理人

/

/

/

/

/

/

/

用定

:指剔除图像内像素值高于一定值或者低于一定值的像素点例如,设定阈值为127,然后:将图像内所有像素值大于127的像素点的值设为255。将图像内所有像素值小于或等于127的像素点的值设为0。一幅图像包括目标物体、背景还有噪声要想从多值的数字图像中提取目标物体知识储备:阈值处理1O

p

e

n

CV定义:指剔除图像内像素值高于一定值或者低于一定值的像素点例如,设定阈值为127,然后:将图像内所有像素值大于127的像素点的值设为255。将图像内所有像素值小于或等于127的像素点的值设为0。知识储备:阈值处理1O

p

e

n

C

V1知识储备:阈值处理OpenCV

提供了函数cv2.threshold()

和函数cv2.adaptiveThreshold(),

用于实现阈值处理。cv2.threshold()cv2.adaptiveThreshold()O

p

e

n

C

Vcv2.THRESH_BINARYdst(es)={0,其他情况cv2.THRESH_BINARY_INVdst(w)={src

)

eshev2.THRESH_TRUNCsrc(x,y)>thresh其他情况ev2.THRESH_TOZERO_INVsre(x,y)>thresh其他情况ev2.THRESH_10ZEROdstky)=[src(xysrc(xy)>thresh他情况ev2.THRESH_MASK掩码cv2.THRESH_OTSUev2.THRESH

TRIANGLE标记,使用Otsu算法时的可选网值参数

称记,使用Trangle算法时的可选阀值参数情况>thr其他(xycv2.threshold()cv2.adaptiveThreshold()retval,dst=cv2.threshold(src,thresh,maxval,type)知识储备:阈值处理1O

p

e

n

C

Vcv2.THRESH_BINARYcv2.THRESH_BINARY_INVcv2.THRESH_TRUNCcv2.THRESH_TOZERO_INVcv2.THRESH_TOZEROcv2.threshold()cv2.adaptiveThreshold()二值化反二值化截断超阈值零处理

低阈值零处理retval,dst=cv2.threshold(src,thresh,maxval,type)1知识储备:阈值处理O

p

e

n

C

Vcv2.threshold()cv2.adaptiveThreshold()cv2.THRESH_BINARYcv2.THRESH_BINARY_INVcv2.THRESH_TRUNCcv2.THRESH_TOZERO_INVcv2.THRESH_TOZEROBINARY_INVTOZERO_INVretval,dst=cv2.threshold(src,thresh,maxval,type)1知识储备:阈值处理Original

imageO

p

e

n

CVTOZEROBINARYTRUNCcv2.threshold()cv2.adaptiveThreshold()自适应阈值处理

保留了更多的细节信息1知识储备:阈值处理8352223O

p

e

n

C

V2自适应阈值处理定义:使用变化的阈值完成对图像的阈值处理。操

:通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用该阈值对

当前像素点进行处理。目

:保留了更多的细节信息cv2.threshold()cv2.adaptiveThreshold()知识储备:阈值处理1O

p

e

n

C

Vdst=cv2.adaptiveThreshold(src,maxValue,adaptiveMethod,thresholdType,blockSize,C)●

maxValue代表最大值。●adaptiveMethod代表自适应方法。●thresholdType代表阈值处理方式,该值必须是cv2.THRESH_BINARY或者cv2.THRESH_BINARY_INV

中的一个。●

blockSize代表块大小。表示一个像素在计算其阈值时所使用的邻域尺寸,通常为3、5、7等。●

C是常量。cv2.threshold()cv2.adaptiveThreshold()知识储备:阈值处理1O

p

e

n

C

VP1P3邻

域P4P7P5P8P6P9O

p

e

n

C

VP21知识储备:阈值处理cv2.threshold()cv2.adaptiveThreshold()cv2.THRESH_BINARYcv2.THRESH_BINARY_INVcv2.THRESH_TRUNCcv2.THRESH_TOZERO_INVev2.THRESH_TOZEROcv2.THRESH_MASKev2.THRESH_OTSUcy2THRESH

TRIANGLE给定初始阈值计算机自己找给定阈值O

p

e

n

CVOtsu大津定义:根据当前图像给出最佳的类间分割阈值。操作:遍历所有可能阈值,从而找到最佳的阈值。t,otsu=cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)O

p

e

n

C

Vcv2.threshold()cv2.adaptiveThreshold()知识储备:阈值处理102使用滑块调整阈值大小人

/

/

/

/

/

/

/

用2

函数实操与彩色图像cv2.threshold()

cv2.adaptiveThreshold()I

Task1函数实操cv2.Threshold()cv2.adaptiveThreshold()cv2.Threshold(Otsu)O

p

e

n

C

V|用滚动条控制阈值处理参数知识储备1:回调函数用于将滑动条的数值处理并响应cv2.threshold()cv2.adaptiveThreshold()函数实操与彩色图像2O

p

e

n

C

V|用滚动条控制阈值处理参数知识储备2:cv2.createTrackbar(“name”,“winname”,“default”,"max”,callback)Data=Cv2.getTrackbarPos(”name”,“winname”)O

p

e

n

C

Vcv2.threshold()cv2.adaptiveThreshold()2

函数实操与彩色图像人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目四阈值与平滑处理(二)课前任务如何对有很多噪声的

图片进行画质改善?/product/imageprocess/image_definition_enhanceO

p

e

n

C

V01

平滑处理

使用滑块调整平滑效果目录CONTENTSO

p

e

n

C

V重难点模糊处理卷积概念O

p

e

n

C

V01平滑处理P

A人

/

/

/

/

/

/

/

用1知识储备:平滑处理卷积:基本原理:将噪声所在像素点的像素值处理为其周围临近像素点的值的近似值。均值滤波方框滤波高斯滤波中值滤波双边滤波2D

卷积(自定义滤波)去除图像

内部噪声目标O

p

e

n

C

V1

知识储备:平滑处理卷积:将噪声所在像素点的像素值处理为其周围临近像素点的值的近似值。a,b

的下标相加都为1,1C1,1=ao,ob₁,1O

p

e

n

C

V均值滤波

方框滤波

高斯滤波中值滤波

双边滤波

2D卷积1知识储备:平滑处理0

p

e

n

CV1

知识储备:平滑处理均值滤波

定义:是指用当前像素点周围N*N个像素值的均值来代替当前像素值。P1P2P3P4P5P6P7P8P9方框滤波高斯滤波中值滤波双边滤波2D卷积均值卷积核×P5=(P1+P2+……+P9)/(3×3)O

p

e

n

C

V函数形式:dst=cv2.blur(src,ksize,anchor,borderType)ksize:滤波核的大小。滤波核大小是指在均值处理过程中,其邻域图像的高度和宽度。

anchor:

锚点,其默认值是(-1,-1),表示当前计算均值的点位于核的中心点位置。

borderType:

边界样式,该值决定了以何种方式处理边界。通常情况下,使用均值滤波函数时,对于锚点anchor和边界样式borderType,

直接采用其默认

值即可。因此,函数cv2.blur()的一般形式为:dst=cv2.blur

(src,ksize,)。缺点在于它不能很好地保护图像细节,在图像去噪的同时

也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积1知识储备:平滑处理O

p

e

n

C

V定义:自由选择是否对均值滤波的结果进行归一化,即可以自由选择滤波结果是邻域像素值之和的平均值,还是邻域像素值之和。方框滤波的权重系数模板,a={1,均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积1知识储备:平滑处理O

p

e

n

C

V函数形式:cv2.boxFilter(src,ddepth,ksize,anchor,normalize,borderType)ddepth

是处理结果图像的图像深度,一般使用-1表示与原始图像使用相同的图像深度。normalize

表示在滤波时是否进行归一化(这里指将计算结果规范化为当前像素值范围内

的值)处理,该参数是一个逻辑值,可能为真(值为1)或假(值为0)。通常情况下,函数cv2.boxFilter()的一般形式为:dst=cv2.boxFilter(src,ddepth,ksize)均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积1知识储备:平滑处理O

p

e

n

C

V定义:将中心点的权重值加大,远离中心点的权重值减小,在此基础

上计算邻域内各个像素值不同权重的和。于常见的3x3

或者5x5

其整数均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积知识储备:平滑处理模板如下:1高斯卷积核O

p

e

n

C

V函数形式:dst=cv2.GaussianBlur(src,ksize,sigmaX,sigmaY,borderType)sigmaX是卷积核在水平方向上(X

轴方向)的标准差,其控制的是权重比例。

sigmaY

是卷积核在垂直方向上(Y轴方向)的标准差。在实际处理中,可以显式指定sigmaX和sigmaY

为默认值0。因此,函数

cv2.GaussianBlur()的常用形式为:dst=cv2.GaussianBlur(src,ksize,0,0)

,高斯滤波的作用是消除高斯噪声(抑制服从正态分布的噪声)均值滤波方框滤波高斯滤波中值滤波双边滤波2D

卷积1知识储备:平滑处理O

p

e

n

C

V定义:用邻域内所有像素值的中间值来替代当前像素点的像素值。dst=cv2.medianBlur(src,ksize)该方法在去除脉冲噪声、椒盐噪声的同时又能保留图像边缘细节均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积1知识储备:平滑处理O

p

e

n

C

V120126127150125115119123定义:用邻域内所有像素值的中间值来替代当前像素点的像素值(寻找

中位数

)。均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积1知识储备:平滑处理124O

p

e

n

C

V定义:是综合考虑空间信息和色彩信息的滤波方式,在滤波过程中能够有效地保护图像内的边缘信息。cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace,borderType)d:在滤波时选取的空间距离参数,这里表示以当前像素点为中心点的直径。如果该值

为非正数,则会自动从参数sigmaSpace计算得到。sigmaColor:

滤波处理时选取的颜色差值范围,该值决定了周围哪些像素点能够参与

到滤波中来。sigmaSpace:坐标空间中的sigma值。在函数cv2.bilateralFilter()中,参数borderType是可选参数,其余参数全部为必选参数。cv2.bilateralFilter(src,d,sigmaColor,sigmaSpace)均值滤波方框滤波高斯滤波中值滤波双边滤波2D卷积1知识储备:平滑处理O

p

e

n

C

V定义:使用特定的卷积核实现卷积操作。dst=cv2.filter2D(src,ddepth,kernel,anchor,delta,borderType)delta

:修正值,它是可选项。如果该值存在,会在基础滤波的结果上加上该值作

为最终的滤波处理结果。在通常情况下,使用滤波函数cv2.filter2D()时,对于参数锚点anchor、修正值delta、边界样式borderType,直接采用其默认值即可。因此,函数

cv2.filter2D()的常用形式为:dst=cv2.filter2D(src,ddepth,kernel)/qq_62932195/article/details/126337971均值滤波方框滤波高斯滤波中值滤波双边滤波2D

卷积1知识储备:平滑处理O

p

e

n

C

V6d8dLd9dSdvdEdZdTdT乙T0T-Z-T-A

)u

ə

d

o人

/

/

/

/

/

/

/

用OpenCV图像处理技术项目五形态学操作(一)课前任务预习教材80页,解释形态学腐蚀的原理O

p

e

n

C

V01

腐蚀与膨胀02

通用形态学函数03

核函数04

找一找:笔记注释目录CONTENTSO

p

e

n

C

V重点通用形态学函数重难点腐蚀与膨胀O

p

e

n

C

V知识储备:形态学操作形态学,即数学形态学(Mathematical

Morphology),是图像处理过程中一个非常重要的研究方向。例

,在识别手写数字时,能够通过形态学运算得到其骨架信息,在具体识别时,仅

针对其骨架进行运算即可。图像处理学科的一个单独分支学

科,是由数学的集合论等相关理论

发展起来的灰度&二值图像提取图像分量信息最本质的形状特征目标O

p

e

n

C

V◆

腐蚀◆

膨胀◆开运算◆闭运算◆形态学梯度运算◆顶帽运算◆黑帽运算知识储备:形态学操作BAND[NOT(A)]AND(B)NOT-AND(B)XOROp

enC

V(A)OR(B)01腐蚀与膨胀人

/

/

/

/

/

/

/

用000000

o

0000000o

0

0

o

0

o

00

o

o

o0

o

0

o0

o

0

0o

00000000000000

00o

010

o

0000

o

o0o

00o0110

o

o

oo

o

0

o

0

o

0

0oo

o

oo

o

o

oo

o

010

o

0

0000000o

00010

o

00

000o000oo

010

oo

00

0000000

o

010

o

0000

0

o

o

o

oo

o

010

o

o

o0

o

0

0

o0

o

00010o

o

o

0o

o

0000000110ooo

000000o

0111

o

o

00

o

0

o00oooo01111oo

00

o

00oooo0oooooo

0o

o

0o0o

000

o

o

o

o

0

o

o0

o

01知识储备:腐蚀与膨胀●将图像的边界点消除,使图像沿着边界向内收缩●将小于指定结构体元素的部分去除0o

o

o0

o

0

o

o

o

oo

o

o

o

00o

o

o0

o

oo

o

o

o

o

o

o

o

00

o

0111

o

o

o

o

o

o

o

o

o

0o

0

10

o

o

oo

o

o

o

0

o011oooo1110o011110o

o

o11110oo0110oo

o11111o

oo

o

oooo

o

o11

111

o

o

o00

o

00

o

011

110

o

o

0o

o

o

oo

011

1

10o

o

o

0o

o

o

o

011

1

1

1

oo

o

o

o

0o

o

o

01111

100oooo00

o

0

o11

1

1

1

111oo

o

odst=

cv2.erode(src,kernel[,anchor[,iterations[,borderType[,borderValue]]]])o

o011

10oooo1110000

o

ooo

o

o1

o

o

o

1oo

o

oo

o

00

oO

p

e

n

C

V3x30001

知识储备:腐蚀与膨胀●膨胀操作能对图像的边界进行扩张●将与当前对象(前景)接触到的背景点合并到当前对象内,从而实现将图像的边界点向外扩张dst=cv2.dilate(src,kernel[,anchor[,iterations[,borderType[,borderValue]]]])O

p

e

n

C

V将腐蚀和膨胀操作进行组合,就可以实现开运算、闭运算(关运算)、形态学梯度(Morphological

Gradient)运算、礼帽运算(顶帽运算)、黑帽运算、击中击不中等多种不同形式的运算。.erode().dilate()膨胀腐蚀知识储备:腐蚀与膨胀1O

p

e

n

C

V02通用形态学函数人

/

/

/

/

/

/

/

用类型说明含义操作ev2.MORPH_ERODE腐蚀腐蚀erode(src)cv2.MORPH

DILATE膨胀膨胀dilate(src)cv2.MORPH

OPEN开运算先腐蚀后膨胀dilate(erode

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论