查看: 3239|回复: 1

【BPI M2 Zero试用】简单调用opencv

[复制链接]
  • TA的每日心情
    奋斗
    2022-4-7 16:37
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2018-4-17 23:41:07 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 mikeliujia 于 2018-4-17 23:46 编辑

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。在这里我们通过BPI M2 Zero简单调用opencv.
    1、安装OpenCV库:
    apt-get install guvcview
    sudo apt-get install libcv-dev
    2、编写一个打开摄像头的程序,vim xiaorun.cpp
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/core/core.hpp>
    using namespace cv;
    int main()
    {
            VideoCapture cap(0);           //打开摄像头
            // 如果要打开本地视频采用  VideoCapture cap("***.avi");
            if(!cap.isOpened())  return -1;     //检测一下摄像头是否打开
            Mat frame;
            while(1){
                    cap>>frame;        //读取当前帧
    // 此处可添加图像处理算法,对图像进行处理,当然了,我们可以不做任何操作,只打开一下摄像头
                    imshow("BPI M2 Zero OpenCV CAM", frame);    //显示一下
                    if(waitKey(20) >=0) break;       // 等待按键,跳出循环
                    }
            return 0;
    }

    3、使用LXTerminal执行
    1. ./xiaorun
    复制代码
    01.JPG

    4、修改代码,实现边缘检测,vim xiaorun.cpp
    #include <opencv2/highgui/highgui.hpp>
    #include <opencv2/core/core.hpp>
    #include <opencv2/imgproc/imgproc.hpp>
    using namespace cv;
    int main()
    {
            VideoCapture cap(0);           //打开摄像头
            // 如果要打开本地视频采用  VideoCapture cap("***.avi");
            if(!cap.isOpened())  return -1;     //检测一下摄像头是否打开
            Mat frame,edges;
            while(1){
                    cap>>frame;        //读取当前帧
                    cvtColor(frame,edges,CV_BGR2GRAY);//把图像转换为灰度图像
                    blur(edges,edges,Size(7,7));//模糊降噪
                    Canny(edges,edges,3,9,3);//Canny 边缘检测
                    imshow("BPI M2 Zero OpenCV Canny", edges);    //显示一下
                    if(waitKey(20) >=0) break;       // 等待按键,跳出循环
                    }
            return 0;
    }


    保存退出后,
    1. g++ -o xiaoruncanny ./xiaorun.cpp -lopencv_core -lopencv_highgui -lopencv_imgproc
    复制代码
    使用LXTerminal执行
    1. ./xiaoruncanny
    复制代码

    02.JPG
    噪声信号还是挺多的,但是基本的边缘检测还是能够很清晰的完成。



    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 22:41
  • 签到天数: 1432 天

    连续签到: 11 天

    [LV.10]以坛为家III

    发表于 2018-4-18 22:22:31 | 显示全部楼层
    不错呢,加油
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 12:24 , Processed in 0.116816 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.