美文网首页学习杂谈
计算机视觉漫谈5

计算机视觉漫谈5

作者: supportingvecto | 来源:发表于2017-05-15 13:43 被阅读0次

    计算机视觉漫谈5

    学号:14020199025

    姓名:徐铭晟

    【嵌牛导读】:前几次我们都在讨论一些简单的机器学习算法,今天我们回归计算机视觉,讲讲一个比较重要的工具,opencv

    【嵌牛鼻子】:opencv

    【嵌牛正文】:

    在处理图像中,很多相关代码前任已经为我们做了铺垫,不需要我们重复造轮子。特别的,在cv领域,很多代码函数也有前人为我们做了优化,最著名的库应当属于Opencv。

    CV即compuer vision,即计算机视觉,open即开放的意思OpenCV是一个开源的计算机视觉库,是英特尔公司资助的两大图像处理利器之一。它为图像处理、模式识别、三维重建、物体跟踪、机器学习和线性代数提供了各种各样的算法。

    OpenCV有如下特点:

    (1)OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。

    (2)OpenCV提供了Python、Ruby、MATLAB以及其他语言的接口。

    (3)它采用优化的C代码编写,能够充分利用多核处理器的优势

    (4)具有良好的可移植性

    OpenCV的可应用于(1)人机互动       (2)物体识别          (3)图象分割    (4)人脸识别       (5)动作识别   (6)运动跟踪      (7)机器人       (8)运动分析     (9)机器视觉      (10)结构分析

    它的组织结构大体如下:

    我们来看一个小例子,即可体现出这个工具库的优越性。

    opencv做边缘检测

    利用canny算子做边缘检测代码如下:

    import numpy

    import argparse

    import cv2

    image = cv2.imread('1.jpg')

    cv2.imshow("Original", image)

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    cv2.imshow("Gray", gray)

    canny = cv2.Canny(gray, 30, 150)

    canny = numpy.uint8(numpy.absolute(canny))

    cv2.imshow("Edge detection by Canny", numpy.hstack([gray,canny]))

    cv2.imwrite("1_edge_by_canny.jpg", numpy.hstack([gray,canny]))

    十一行代码,即可完成一个较为复杂的边缘检测模型。我们来看一下完成效果。

    由于篇幅有限,本章只略微提下实现,下章具体聊聊图像的边缘提取。

    相关文章

      网友评论

        本文标题:计算机视觉漫谈5

        本文链接:https://www.haomeiwen.com/subject/eghhxxtx.html