计算机科学与技术学硕专硕-计算机视觉作业-20级计算机视觉作业-脱敏处理_第1页
计算机科学与技术学硕专硕-计算机视觉作业-20级计算机视觉作业-脱敏处理_第2页
计算机科学与技术学硕专硕-计算机视觉作业-20级计算机视觉作业-脱敏处理_第3页
计算机科学与技术学硕专硕-计算机视觉作业-20级计算机视觉作业-脱敏处理_第4页
计算机科学与技术学硕专硕-计算机视觉作业-20级计算机视觉作业-脱敏处理_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

计算机视觉课程报告

学号:[脱敏]

姓名:[脱敏]

2021年1月6日

目录

摘要错误!未定义书签。

1计算机视觉概论错误!未定义书签。

2图像处理相关基础错误!未定义书签。

3图像特征错误!未定义书签。

4图像对齐问题错误!未定义书签。

5二值图像分析错误!未定义书签。

6纹理及特征分析错误!未定义书签。

7图像分割错误!未定义书签。

8摄像机模型和多视几何错误!未定义书签。

9三维重建错误!未定义书签。

10光流计算错误!未定义书签。

11目标识别错误!未定义书签。

12运动跟踪错误!未定义书签。

15深度学习基础错误!未定义书签。

16智能图像增强技术错误!未定义书签。

17智能图像彩色化处理错误!未定义书签。

18智能图像风格迁移处理错误!未定义书签。

19智能图像语义分割错误!未定义书签。

20智能图像目标识别错误!未定义书签。

21智能图像重建技术错误!未定义书签。

1计算机视觉概论

L什么是计算机视觉?

计算机视觉是利用采集的图像或视频,对物体和场景进行识别、表达和理

解。个人理解就是指用计算机实现人的视觉功能——对客观世界的三维场景的

感知、识别和理解。

2.计算机视觉要完成的主要任务是什么?

计算机视觉的任务是用图像创建或恢复现实世界模型,然后认知现实世界。

3.请将数字图像处理的主要知识点自己回顾或整理一下,如果还没学过,自己通过网络资

源初步了解一下,然后把主要的知识点加以整理,然后记录在这里。

(1)几何处理(GeometricaIImageProcessing)

主要包括坐标变换,图像的放大、缩小、旋转、移动,多个图像配准,全

景畸变校正,扭曲校正,周长、面积、体积计算等。

(2)算术处理(ArithmeticProcessing)

主要对图像施以十、一、义、4■等运算,虽然该处理主要针对像素点的处

理,但非常有用,如医学图像的减影处理就有显著的效果。

(3)图像增强(ImageEnhancement)

就是突出图像中感兴趣的信息,而减弱或去除不需要的信息,从而使有用

信息得到加强。

•改善图像的视觉效果,提高图像成分的清晰度;

•使图像变得更有利于计算机处理,便于进一步进行区分或解释。

(4)图像复原(或恢复)(ImageRestoration)

就是尽可能地减少或者去除图像在获取过程中的降质(干扰和模糊),恢

复被退化图像的本来面貌,从而改善图像质量。

关键是对每种退化(图像品质下降)建立一个合理的模型。

(5)图像重建(ImageReconstruction)

是从数据到图像的处理。即输入的是某种数据,而处理结果得到的是图像。

典型应用有CT技术和三维重建技术。

(6)图像编码(ImageEncoding)

主要是利用图像信号的统计特性及人类视觉的生理学及心理学特征对图像

信号进行高效编码,其目的是压缩数据量,以解决数据量大的矛盾。

(7)图像识别(ImageRecognition)

利用计算机识别出图像中的目标并分类、用机器的智能代替人的智能。它

所研究的领域十分广泛,如,机械加工中零部件的识别、分类;从遥感图片中

分辨农作物、森林、湖泊和军事设施;从气象观测数据或气象卫星照片准确预

报天气;从X光照片判断是否发生肿瘤;从心电图的波形判断被检查者是否患

有心脏病;在交通中心实现交通管制、识别违章行驶的汽车及司机,等等。

2图像处理相关基础

1.常见的滤波器有哪几种?分别说明它们的功能。

(D高斯滤波器是一种可以使图像平滑的滤波器,用于去除噪声。

(2)中值滤波器也是一种可以使图像平滑的滤波器,一定程度上可以去除

图像的噪声,同时图像的细节也会变得模糊。

(3)均值滤波也是用于图像降噪的。唯一与中值滤波不同的是,均值滤波

对于滤波器范围内的像素点,计算他们的均值作为输出。

(4)Sobel滤波器可以提取特定方向(纵向或横向)的边缘。

(5)Prewitt算子与SobeI算子不同的是,SobeI算子考虑了权值的因素,

即在中心点正上方或正下方(正左和正右)的权值为2,因为这个像素点离中心

更近,而离中心远一点的斜侧方的权值为1;而Prewitt中没有这种设定。总的

来说,Sobel算是对Prewitt的一种改进,效果也自然更好一点。

(6)拉普拉斯算子:能够保留图像的高频成分,其低频成分最小值为0,

所以经常用来求图像的梯度信息即边缘。

(7)LoG即高斯-拉普拉斯(LapIacianofGaussian)的缩写。为了防

止拉普拉斯滤波器计算二次微分时使图像的噪声更加明显,所以先使用高斯滤波

器使图像更加平滑,再使用拉普拉斯滤波器使图像的轮廓更加清

晰。

(8)Roberts算子又称为交叉微分算法,它是基于交叉差分的梯度算法,

通过局部差分计算检测边缘线条。常用来处理具有陡峭的低噪声图像,当图像边

缘接近于正45度或负45度时,该算法处理效果更理想。其缺点是对边缘的定位

不太准确,提取的边缘线条较粗。

2.图像金字塔有哪些用途?

图像金字塔是图像中多尺度(多层次)表达的一种,金字塔是一系列以金字

塔形状排列的图像集。主要应用于:图像分割、目标识别、图像理解。

3.在实际应用中,哪些应用需要低分辨率特征,请举出具体实例说明。

拍照中有意识的将某些场景模糊需要低分辨率特征0

3图像特征

L什么是特征?请你给出几幅图像,并说明这几幅图中含有哪类特征?

特征分为三类:全局特征、局部特征以及从全局到局部感知的特征。

(1)全局特征:是指图像全局属性的描述,颜色特征和纹理特征是图像典型的

全局特征。

(2)局部特征:是指图像中灰度有明显变化的局部点或者局部区域特性,边缘

特征、点特征、形状特征、局部区域特征是图像典型局部特征。

(3)从全局到局部感知的特征:是指从全局图像中感知到的图像中目标特性,

空间位置特征是图像典型的这类特征。

2.利用梯度求取边缘特征的主要步骤是什么?

Sabel边缘检测:寻找图像中在纵横方向上面值变化较大的区域。

步骤:

1、将彩色图像转化为灰度图像。

2、计算横向纵向的梯度。

3、计算梯度的大小。

4、规范化梯度值。

3.练一练你的眼力,请你说出以下几幅图像分别具有哪些显著特征

(1)

(a)(b)

(a)中具有纹理特征、形状特征、边缘特征;(b)中具有纹理特征、形状特

征、边缘特征、局部区域特征。

(a)能感觉出一个颅骨的图,(b)能看到一个女性对着镜子在梳妆。

⑵(a)和(b)的人物表情一样吗?为什么?

(a)(b)

不一样,(a)是悲哀的表情,(b)是惊讶的表情

(3)

(a)

(a)能明显感知出自行车的细节,(b)将影子感知,看着像一个摩托车

4.你能从特征的角度考虑一下,如何从一幅图像中识别出人脸目标?(可以查

阅资料辅助你完成)

众所周知,虽然人脸的结构是确定的,由眉毛、眼睛、鼻子和嘴等部位

组成,近似是一个刚体,但由于姿态和表情的变化,不同人的外观差异,光

照,遮挡的影响,准确的检测处于各种条件下的人脸是一件相对困难的事情。

因此我认为,不同人脸由不同特征组成。

由于人脸可能出现在图像的任何位置,在检测时用固定大小的窗口对图

像从上到下、从左到右扫描,可以提取出图像中的特征比对是否有人脸的显

著特征(比如眉毛、眼睛、鼻子等),再计算其相似度进行检测识别。

5.第二章中讲的人类对比敏感度与图像显著特征有什么关系?

需要分辨边界模糊的物体的能力为人类的对比敏感度。当图像特征更加

显著时,人类对图像的对比敏感度会更高。

4图像对齐问题

1.什么是图像的对应?图像特征点在对应中的作用是什么?

图像对应是两幅图像之间相互关联的一种操作,以一张图像为参照,对另外

一张图像进行各种变换,计算变换后的图像与参照图像之间的目标函数。特征点

在对应中的作用是表示图像的特征,作为图像对应的依据。

2.图像对齐时,常用的特征有哪些?

图像灰度向量、SURF特征、基于形状上下文的特征。

3.你知道利用SIFT算子描述特征时,图像对齐的步骤吗?

(1)生成高斯差分金字塔,尺度空间构建;

(2)空间极值点检测;

(3)稳定关键点的精确定位;

(4)稳定关键点方向信息分配;

(5)关键点描述;

(6)特征点匹配。

4.全景图像拼接时为什么需要图像对齐?

如果不对齐,每张图像的边缘在拼接后会很突兀。

5.你查阅文献,找一下“基于轮廓对应”的技术,简单写一下方法。

(1)对两张图像进行中值滤波等预处理;

(2)用LoG算子过滤及其他辅助方法提取轮廓;

(3)计算形状签名、不变矩等轮廓参量;

(4)进行基于最小方差的匹配;

(5)仿射变换参数计算;

(6)一致性检验;

(7)重复(4)-(6)直到稳定。

5二值图像分析

1.二值图像有哪些用途?(可以查阅文献说明)

图像二值化的作用是为了方便提取图像中的信息,二值图像在进行计算机识

别时可以增加识别效率。比如:去掉无关信息的干扰、节省资源、算法简单易实

现等。

2.说明彩色图像二值化计算的步骤。

(1)先对彩色图像进行灰度化

(2)对灰度图进行二值化

3.均值迭代求取阈值的二值化步骤是怎样的?

(1)选择一个初始化的阈值T(通常取灰度值的平均值)

(2)使用阈值T将图像的像素分为两部分:G1包含灰度满足大于T,G2

包含灰度满足小于T

(3)计算G1中所有像素的均值口1,以及G2中所有像素的均值口2

(4)计算新的阈值:T=(|i1+u2)/2

(5)重新步骤(2)-(4),直到在前后计算的结果小于一个预先确定的

阈值为止

第6章纹理特征及分析

1.简单说明纹理分析和研究的主要目的是什么?

纹理分析:检测出纹理基元;获得有关基元排列分布方式的信息;指通过一定的

图像处理技术抽取出纹理特征,获得纹理的定量或定性描述的处理过程。它首先

从像素出发,检测出纹理基元,并找到纹理基元排列的信息,建立纹理基元模型。

纹理分析的目的:指通过一定的图像处理技术提取出纹理特征参数,从而获得纹

理的定量或定性描述的处理过程。

2.什么是纹理?

纹理是图像像素点灰度级或颜色的某种变化,反复出现纹理基元和它的排

列规则,而且这种变化是空间统计相关的。构成纹理特征的两个要素:

纹理基元:由一定的形状和大小多种图像基元的组合叫纹理基元。

纹理是由纹理基元排列组合而成的。基元排列的疏密,周期性,方向性等

的不同,能使图像的外观产生极大地改变。

3.纹理特征提取与分析方法的主要方法有哪几种?

常用的纹理特征提取方法一般分为四大类:

基于统计的方法:灰度共生矩阵、灰度行程统计、灰度差分统计、局部灰

度统计、半方差图、自相关函数等

优点:方法简单,易于实现。

缺点:无法利用全局信息,与人类视觉模型不匹配;计算复杂度较高,计算耗

时。

较为经典的算法为灰度共生矩阵方法,其通过统计不同灰度值对的共现频率得

到灰度共生矩阵,基于矩阵可计算出14种统计量:能量、烯、对比度、均匀

性、相关性、方差、和平均、和方差、和靖、差方差、差平均、差靖、相关信

息测度以及最大相关系数。

灰度梯度共生矩阵将图梯度信息加入到灰度共生矩阵中,综合利用图像的灰度

与梯度信息,效果更好。图像的梯度信息一般通过梯度算子(也称边缘检测算

子)提取,如sobel、canny、reborts等。

基于模型的方法:同步自回归模型、马尔可夫模型、吉布斯模型、滑动平

均模型、复杂网络模型等

基于结构的方法:句法纹理分析、数学形态学法、Laws纹理测量、特征滤

波器等

基于信号处理的方法:Radon变换、离散余弦变换、局部傅里叶变化、Gabor

变换、二进制小波变换、树形小波分解等

4.假设位置算子(dx,dy)为(1,1),计算下面纹理的共生矩阵:

21201

03132

01230

13201

20101

一共有4个灰度级{0,1,2,3},所以共生矩阵为4x4

0211

1111

2002

1210

7图像分割

1.什么是图像分割?简单说明其用途

所谓图像分割指的是根据灰度、颜色、纹理和形状等特征把图像划分成若干互不

交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出

明显的差异性。个人理解就是把图像空间按照一定的要求分成一些有意义的区域

的技术叫“图像分割”。

2.图像分割的目的是什么?

图像分割的目的是简化或改变图像的表示形式,使得图像更容易理解和分析。

3.查阅文献至少1篇,关键词:imagesegmentation,阅读后写出主要思想

题目:InteractiveImageSegmentationWithFirstClickAttention

作者:ZhengLin,ZhaoZhang,Lin-ZhuoChen,Ming-MingCheng,Shao-Ping

Lu

单位:南开大学

主栗思想:

在交互式图像分割任务中,用户最初单击一个点来分割目标对象的主体,然

后在错误预测的区域上迭代地提供更多的点,以实现更为精确的分割。现有的方

法将所有交互点同等对待,忽略了初始交互点和其余的交互点之间的区别。但是

在这篇文章中,本文作者展示了初始交互点对于提供目标对象的位置和主体信息

的关键作用。为了更好地利用初始交互点这篇文章,提出了深度神经网络框架:

初始交互点注意力网络(FCANet)o

在这个网络中,交互式分割结果可以得到改进,其优点如下:聚焦不变能力,

位置指导能力,容错能力。同时本文提出了一种基于交互点的损失函数和一种结

构完整性策略来提高分割效果。

4.查找代码,实现图像分割功能,给出代码和运行结果截图,传统方法,不限

语言

【代码,也可见文件image_segmentation.py]

备image_segmentation.py

1importnumpyasnp

2importcy2

3frommatplotlibimportpyplotaspit

4

5imgcv2.imread('coins2.jpg')

6graycv2.cvtColor(img/cv2.C0L0R_BGR2GRAY)

7ret,threshcv2.threshold(gray,Q,255,cv2.THRESH_BINARY_INVcv2.THRESH_0TSU)

8

9

10kernelnp.ones((3,3),np.uintS)

11openingcv2.morphologyEx(thresh,cv2.M0RPH_0PEN,kernel.2);;

12

13#surebackgroundarea

14sure_bgcv2.dilate(opening,kernel,5)

15

16#Findingsureforegroundarea

17dist_transformcv2.distance!ransform(opening,cv2.DIST.L2,5)

18ret,sure_fgcv2.threshold(dist_transform,0.7dist_transform.max(),255,@)

19

20#Findingunknownregion

21sure_fgnp.uint8(sure_fg)

22unknowncv2.subtract(sure_bgfsure_fg)

23

24#Markerlabelling

25ret,markerscv2.connectedComponents(sure_fg)

26

27#Addonetoalllabelssothatsurebackgroundisnot0,but1

28markersmarkers

29

30#Now,marktheregionofunknownwithzero

31markers[unknown=二255]=0

32

33markerscv2.watershed(img,markers)

34img[markers1][255,0,0]

35

36cv2.imwrite('*result.jpg”,img)

37cv2.imshow('result'zimg)

38cv2.waitKey(0)

39cv2.destroyAHWindowsO

8摄像机模型和多视几何

1.摄像机模型中,内部参数和外部参数分别有哪些?

答:内部参数为摄像机内部投影矩阵参数,每个摄像机内部参数固定:

(1)图像中的主点坐标(uO,v0)o

(2)u轴以及v轴的尺度因子fu,fvo

(3)透视畸变因子s(径向畸变参数,一般视为0)。

外部参数为摄像机相对于世界空间的旋转、位移变换参数,会随着改变相机

位置而变动:

(1)摄像机相对世界的旋转矩阵R(3x3,单位正交矩阵,3个独立参数)。

(2)摄像机相对世界空间的位移参数T(tx,ty,tz,3个独立参数)。

2.张正友方法的主要思想和步骤是什么?

答:主要思想是通过从不同角度拍摄多张模板图像,来计算出摄像机内外参数,

并对参数进行优化从而完成相机标定。

主要步骤为:

(1)准备张正友标定法的棋盘格,已知其大小,通过不同角度拍摄得到包含棋盘

格的多张图像。

(2)对图像中的特征点进行检测,通过特征点的像素坐标根据棋盘大小和世界坐

标系原点位置得到特征点的世界空间坐标。

(3)求解内参矩阵以及外参矩阵

(4)求解畸变参数(计算径向畸变参数)。

(5)利用L-M(Levenberg-Marquardt)算法对求解参数进行优化。

9三维重建

1.什么是深度点云?

深度图像:也叫距离影像,是指将从图像采集器到场景中各点的距离(深度)

值作为像素值的图像。获取方法有:激光雷达深度成像法、计算机立体双目视觉

成像、坐标测量机法、莫尔条纹法、结构光法。

点云:当一束激光照射到物体表面时,所反射的激光会携带方位、距离等信

息o若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,

由于扫描极为精细,则能够得到大量的激光点,因而就可形成激光点云。点云格

式有*.lasped;*.txt等。

深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据

可以反算为深度图像。

2.查阅文献,理解深度点云的重建策略。查阅最新文献2篇:

https://dblp.uni-trier.de/

关键词:depthmap,reconstruction

【基于点云重建】

论文标题:APointSetGenerationNetworkfor3DObjectReconstruction

fromaSingleImage

在这篇论文中,作者利用深度网络通过单张图像直接生成点云,解决了基于

单个图片对象生成3D几何的问题。

模型最终的目标是给定一张单个的图片(RGB或RGB-D),重构出完整的3D

形状,并将这个输出通过一种无序的表示----点云(Pointcloud)来实现。点

云中点的个数,文中设置为1024,作者认为这个个数已经足够表现大部分的几

何形状。点云的优势在于可以利用较少的、覆盖在物体表面的点来描述物体,

并且当物体旋转或者重新调整尺度时,可以通过简单的线性变化得到新的图像

(与体素不同)。

本文利用Chamferdistance和EarthMover'sdistance构造损失函数,

并在后面证明了这两个函数几乎在任何地方都可微。另外在模型构建的时候由于

单个2D图像的局限性,即使是人也无法猜出正确的形状,因此从众多模棱两可

的‘真像'中预测结果也是一大难题。因此文中定义了预测出的真像集是一个概

率分布P('ID其中是输入图像,其训练的网络为G(I,r;6),其

中r是一个正态分布的扰动项用来I对加入噪声6是网络的参数。

【基于深度图重建】

论文标题:Diggingintothemu11i-scaIestructureforamorerefined

depthmapand3Dreconstruction:

从单一图像中提取密集深度是一项重要而具有挑战性的计算机视觉任务。与

立体深度估计相比,从单眼图像中感知场景的深度更加困难和模糊,因为极体几

何约束不能被利用。近年来,随着深度学习技术的发展,单目深度估计技术取得

了重大进展。本文旨在探讨多尺度结构对单目深度估计性能的影响,并进一步利

用我们预测的深度和相应的不确定性获得更精细的三维重建。首先,我们探索三

种多尺度架构,并比较一些先进方法的定性和定量结果。其次,为了提高系统的

鲁棒性,并为后续的三维重建提供预测深度的可靠性,我们通过在一个新的损失

函数中建模这种不确定性来估计噪声数据的不确定性。最后,将预测的深度图和

相应的深度不确定性融合到单目重建系统中。单眼深度估计的实验主要是每上形

成广泛使用的纽约大学V2深度数据集,提出的方法实现三维重建的最先进的性

能,实现我们提出的框架可以重建更加平滑和密度模型在各种场景。

10光流计算

1.查阅代码利用OPENCV,结合python编码,计算图像的光流,并显示结果。

方法:

https:〃旦/

关键词,opticalflow,opencv

代码【也可见文件夹optical_flow】:

得opt>cal_£ow.py

1|i/nportcv2

2importnumpyasnp

3importmath

4importtime

5

6defcalc_optical_flow(i/ng,img2")

7starttime.time()

8imagecv2.cvtColor(img,cv2.C0L0R_BGR2GRAY)

9image2cv2.cvtColor(img2,cv2.C0L0R_BGR2GRAY)

ieixnp.zeros((image.shape[B]/image.shape[1],1),np.float32)

11iynp.zeros((image.shape[0],image.shape[1],1),np.float32)

12ixxnp.zeros((image.shape[0],image.shape[l],1),np.float32)

13ixynp.zeros((image.shape[0],image.shape[l]r1),np.float32)

14iyynp.zeros((image.shape[0],image.shape[1],1),np.float32)

15itnp.zeros((image.shape[0],image.shape[l],1),np.float32)

16ixtnp.zeros((image.shape[0],image.shape[l],i),np.float32)

17iytnp.zeros((image.shapel9],image.shape[1],1),np.float32)

18unp.zeros((image.shape[9],image.shape[l]f1),np.float32)

19np.zeros((image.shape[Q],image.shape[l],1),np.float32)

26thetanp.zeros((image.shape[€],image.shape"],1),np.float32)

21magnp.zeros((image.shape[9],image.shape[l],1),np.float32)

22visualizationnp.zeros((image.shape[0],image.shape[l],3),np.float32)

23visualization_xnp.zeros((image.shape[0],image.shape[1],3),np.float32)

24visualization_ynp.zeros((image.shape[0],image.shaped],3),np.float32)

25arrowsnp.zeros((image.shape[0],image.shape[l]/3),np.float32)

26np.seterr('ignore','ignore')

27endtime.timeO

28

29print("Initializationtime:",endstart)

31starttime

32foriinrange(image.shape[9])

33forjinrange(image.shape[1])

34if(j0andjimage.shape[l]1)

35ix[i][j]int(image[i][j1])int(image[i][j1])

36endtime.timeO

37print("Ixtime:",endstart)

38starttime.timeO

39

40一foriinrange(image.shape[

41forjinrange(image.shape[1])

42ifi>Qandiimage.shape[0]1:

43iy[i][j]int(image[i1][j])int(image[i1][j])

44endtime.timeO

45print("Iytime:",endstart)

46starttime.timeO

47

48foriinrange(image.shape[0])

49forjinrange(image.shape[l])

50ixx[i][j]ix[i][j]*ix[i][j]

51endtime.timeO

52printC'Ixxtime:",endstart)

53starttime.timeO

54

55foriinrange(image.shape[0])

56forjinrange(image.shape[l])

57iyy[i](j]iy[i][j]iy-

58endtime.timeO

59print("Iyytime:",endstart)

58endtime.timeO

59print("Iyytime:",endstart)

60starttime.timeO

61

62foriinrange(image.shape[0])

63forjinrange(image.shape[1])

64ixy[i][j]ix[i][j]iy[i][j]

65endtime

66print("Ixytime:",endstart)

67starttime.time()

68

69foriinrange(image.shape[Q])

70forjinrange(image.shape[1])

71it[i][j]int(image2[i][j])int(image[i][j])

72endtime.timeO

73print("Ittime:",endstart)

74starttime.timeO

75

76foriinrange(image.shape[0])

77forjinrange(image.shape[1])

78ixt[i][j]ix[i][j]it[i][j]

79iyt[i][j]iy[i][j]*it[i][j]

80endtime.timeO

81print("Ixtandlyttime:",endstart)

82max_mag0

83starttime.time()

84foriinrange(image.shape[O])

85forjinrange(image.shape[1])

86ixxsum,iyysum,ixysum,ixtsum,iytsum-。,0,0,0

分op&U.Bow.py

82max_mag0

83starttime.timeO

84foriinrange(image.shape[3])

85forjinrange(image.shape[1])

86ixxsum,iyysum,ixysum,ixtsum,iytsum0,e,8,0Z0

87forIinrange。6,7)

88forBinrange(-6/7)

89ifnot(not(0--image.shape[0])ornot(9jmimage.shape[1]))

90ixxsumixx[iU(jm]

91iyysumiyy[iX](jmJ

92ixysumixy[imJ

93ixtsumixt[il][jm]

94iytsumiyt[il](jm]

95

96if(ixxsumiyysum)(ixysumixysum)

97

98v[i][j]Q

99theta[i][j]0

ieeelse:

leiu[i][j]((iyysumixtsum)ixysumiytsum)((ixxsumiyysum)(ixysumixysum))

162v[i][j]((ixysumixtsum)(ixxsumiytsum))((ixxsumiyysum)(ixysumixysum))

183theta[i][j]math.atan2(v[i][j],u[i][j])

184

185mag[i][j]miath.sqrt((u[i][j]2)(v[i][j]2))

166ifmag(i](j]Imax_mag

187max_magmag[i](j]

188ifmax_mag工Q:

189max.mag

118#print(Hcurrentcalculateindex:"♦str(i)♦",total:"♦str(image.shape[8]))

£optiJljlowpy

112calc_visuaL(image,mag,theta,visualization)-A•ti*

113calc_visual(image,u,theta,visualization_x)

114calc_visual(image,v,theta,visualization.y)

115

116endtime.timeO

117print("Maxmagnitude=",max.nag)

118print(Summations,magnitude,andangletime:",endstart)

119starttine.timeO

128

121foriinrange(Q,image.shape[6],5)

122forjinrange(9,inage.shape[l],5)

123scaleflow15"(mag[i][j]max.mag)

124#printCu,vati4j:",i,"",jt"","u="ru(i](j]r"v="/v(i](JL-Angle:",math.atan2(scalefl.ow*v[i](j]4

125

126cv2.arrowedLine(arrows,(j,i),(scaleflowu[i][j])j))),-(scaleflowv[i][j])))))(

127(0,255,0))

128endtime.timeO

129print("arrowstime:",endstart)

136

131

132cv2.imwrite("resources/arrows.jpg",arrows)

133cv2.imwrite("resources/visual.jpg",visualization)

134cv2.imwrite("resources/visualx.jpg",visualization.x)

135cv2.imwriteC'resources/visualy.jpg",visualization.y)

136

137cv2.imshow("arrows",arrows/255)

138cv2.waitKey(9)

139

146cv2.imshow("visual",visualization■,255)

146CM2.imshow("visual",visualization255)

141cv2.waitKey(0)

142

143cv2.imshow("visualx",visualization_x255)

144cv2.waitKey(Q)

145

146cv2.imshow("visualy",visualization_y255)

147cv2.waitKey(8)

148

149

156defcalc_visual(i/nagermag,theta,visualization)

151foriinrange(image.shape[0])

152forjinrange(image.shape[1])

153b(255(2math.pi))(theta[i][j]math,pi)(/nag[i][j])

154g(255(255(2math.pi))(theta[i][j]math.pi))(/nag[i][j])

155visualization[i][j][0]b

156visualization[i][j][1]g

157

158►if.__name__

159imagelcv2.imread("resources/spherel.jpg")

166image2cv2.imread("resources/sphere2.jpg")

161calc_optical_flow(imagel,image2)

162

Spherel.jpgSphere2.jpgarrows.jpgvisual.jpg

Result:绿色箭头(arrows,jpg)代表像素点的光流方向,右边的visual

结果绿色代表x轴上的变化量比较大,而蓝色代表y轴上变化量较大。

11目标识别

查阅代码python编码,实现目标识别算法adaboost,并显示结果。

/

关键词,adaboost

效果:

detection

'Tvemissedmorethan

9,000shotsinmycareer.

I'velostalmost300games.

26timesI'vebeentrusted

totakethegamewinning

shotandmissed.

I'vefailedoverandover

andoveragaininmylife.

AndthatiswhyIsucceed."

~MichaelJordan

detection

j>

代码[也可见文件夹作业-11部分]:

#codiiag:utf-8

importcv2.

importHumpyas呻

[x,9,Wjk][O,O,O,O]

#path='./facedmages/2。。2_OO25。pg’

#patk-,C:\Use^\86^82.\Pychari^Projects\pytkonPiroject4\te$tJpg,

path'./test.jpg1

#path='./sckoolOS.jpg'

#face_Cascade=cv2..CascadeCla^ifier(u./haarcascades/haarcascade,_fro^talf:ace_alt2..xi^l")

face_Ca^cadecv2..CascadeCla^ifier("./kaarcascade_fro^talface_att2..xi^l,,>)

#FacejCascade=cs2.CascadeCSssifier("D:\\ec八八\课程资料\\计算机视觉\\作业

\Xopeiacv-^aster\XdataX\haarcascade$X\haarcascadeJro^talface_alt2..Ki^l,1)

Fnakwecv2.i^read(patk)

sizef^a^\eskape[.2]

i^age呻.zeHos(size,八“0at32)

imagecvZ.cvtColo^frai^e,c以COLORJ3GR2CRAY)

#直方图均衡

ii^agecv2..equaliz.eHist(ii^.age^

ikwj%(m_wsize

(/m_w'/m_hX(9)

faceRectsfac^Cascade.detectMultiScal^ii^agejt.OS}21cz2.CASCADE_SCALE」MAGE,

mmS/ze_l)

/flei^(faceRects)O

/vrfaceR.ectMfaceRects

x,g,w,hfaceRect

w2.rcc仅八g/e(Fr43e,(x,g),(xw,yk),1255,255,O]j2)

cv2.iMshow("detecti(m",frame)

cv2.waitKey(O)

priiat(,okay,)

12运动跟踪

查阅运动跟踪代码,结合课堂理论知识,分别说明卡尔曼滤波器和相关滤波器

的运动跟踪算法的原理和步骤.

温馨提示

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

评论

0/150

提交评论