一文综述OpenCV基础+计算机视觉基础
AI算法与图像处理
共 8878字,需浏览 18分钟
·
2021-06-03 20:06
点击下面卡片关注,”AI算法与图像处理”
最新CV成果,火速送达
什么是计算机视觉? 计算机视觉如何工作? 计算机视觉的应用 什么是OpenCV? OpenCV的简史 OpenCV快速入门
什么是计算机视觉?
计算机视觉是一门跨学科的科学领域,涉及计算机如何从数字图像或视频中获得高级了解。从工程学的角度来看,它试图理解和自动化人类视觉系统可以完成的任务。
计算机视觉是人工智能(AI)的领域,它使计算机和系统能够从数字图像,视频和其他视觉输入中获取有意义的信息,并根据该信息采取行动或提出建议。如果AI使计算机能够思考,则计算机视觉使他们能够看到,观察和理解。
计算机视觉如何工作?
可以通过视频,照片或3D技术实时获取甚至大集合的图像进行分析。
深度学习模型会自动执行此过程的大部分过程,但是通常会先向模型提供数千张标记或预先识别的图像,然后对模型进行训练。
最后一步是解释性步骤,在此步骤中对对象进行识别或分类。
计算机视觉的应用
癌症检测 COVID-19诊断 口罩检测 车辆分类 交通流量分析 停车占用检测 自动车牌识别 客户追踪 人数盘点 社会距离 球追踪 球门线技术
什么是OpenCV?
OpenCV的简史
OpenCV由加里·布拉德斯基(Gary Bradsky)于1999年在英特尔创立,第一版于2000年问世。瓦迪姆·皮萨列夫斯基(Vadim Pisarevsky)与加里·布拉德斯基(Gary Bradsky)一起管理英特尔的俄罗斯软件OpenCV团队。 2005年,OpenCV用于Stanley,该车赢得了2005年DARPA大挑战赛的冠军。后来,在Willow Garage的支持下,它的发展得以继续,Gary Bradsky和Vadim Pisarevsky领导了该项目。OpenCV现在支持与计算机视觉和机器学习有关的多种算法,并且正在日益扩展。 OpenCV支持多种编程语言,例如C ++,Python,Java等,并且可在包括Windows,Linux,OS X,Android和iOS在内的不同平台上使用。基于CUDA和OpenCL的高速GPU操作的接口也正在积极开发中。 OpenCV-Python是用于OpenCV的Python API,结合了OpenCV C ++ API的最佳质量和Python语言。
OpenCV快速入门
读取图像
pip install opencv-python
cv2.imread( )
函数读取图像。此函数将获取图像的文件的路径作为参数。由于我的python工作文件与图片位于同一文件夹中,因此我直接输入图片的名称。这里要注意的一点是编写视觉效果的扩展。别忘了这个。cv2.namedWindow( ).
函数执行此操作。该函数将窗口的名称作为其第一个参数。实际上,这就足够了。但是由于我希望能够更改打开的窗口的大小,因此我添加了参数cv2.WINDOW_NORMAL.
cv2.imshow( )
用于在屏幕上显示当前图像。它有两个参数。第一个是我们将要显示的视觉效果的名称,第二个是它在其中注册的对象。在这里,我将图像保存为img。因此,我将img用作第二个参数。cv2.waitKey(0)
是因为希望在打开的可视屏幕上随时关闭它。此函数以毫秒为单位获取数字值。当我们在此处写入0时,表示我们可以随时关闭窗口。cv2.destroyAllWindows().
的习惯。当我们执行高级项目时,我们会忘记关闭许多在屏幕上打开的窗口。此函数可避免这种情况。import cv2
img = cv2.imread("klon.jpg")
cv2.namedWindow("Image",cv2.WINDOW_NORMAL)
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
从网络摄像头读取视频
cv2.VideoCapture(0)
函数从计算机摄像头捕获视频。此处的值0用于访问连接到计算机的相机。ret, frame = capture.read()
frame = cv2.flip(frame, 1).
此处编写代码的原因,当我们在帧后输入参数为1时,它给出了y轴图像的倒数。cv2.imshow("Webcam", frame)
以显示从相机拍摄的帧。cv2.imshow("Webcam", frame)
if cv2.waitKey(30) & 0xFF == ord("q"):
break
0xFF == ord("q")
是指按键盘上的q键。capture.release()
import cv2
capture = cv2.VideoCapture(0)
while True:
ret, frame = capture.read()
frame = cv2.flip(frame, 1)
cv2.imshow("Webcam", frame)
if cv2.waitKey(30) & 0xFF == ord("q"):
break
capture.release()
cv2.destroyAllWindows()
长宽比应用
为其保留图像的变量的名称 宽度 高度 并具有避免在调整大小时插值的功能
r = height / float(h)
dimension = (int(w*r),height)
return cv2.resize(img, dimension, interpolation= inter)
img = cv2.imread("klon.jpg")
img1 = resizewithAspectRatio(img,
width = None,
height = 600,
inter = cv2.INTER_AREA)
cv2.imshow("Original",img)
cv2.imshow("Resized",img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
import cv2
def resizewithAspectRatio( img
, width = None
, height = None
, inter = cv2.INTER_AREA):
dimension: None
(h,w) = img.shape[:2]
if width is None and height is None:
return img
if width is None:
r = height / float(h)
dimension = (int(w*r),height)
else:
r = width / float(w)
dimension = (width, int(h*r))
return cv2.resize(img, dimension, interpolation= inter)
img = cv2.imread("klon.jpg")
img1 = resizewithAspectRatio( img
, width = None
, height = 600
, inter = cv2.INTER_AREA)
cv2.imshow("Original",img)
cv2.imshow("Resized",img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
个人微信(如果没有备注不拉群!) 请注明:地区+学校/企业+研究方向+昵称
下载1:何恺明顶会分享
在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析
下载2:终身受益的编程指南:Google编程风格指南
在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!
下载3 CVPR2021 在「AI算法与图像处理」公众号后台回复:CVPR,即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文
点亮 ,告诉大家你也在看
评论