TA的每日心情 | 奋斗 2022-10-13 10:27 |
---|
签到天数: 216 天 连续签到: 1 天 [LV.7]常住居民III
|
[讨论] 香蕉派 BPI-M2 Ultra分享帖汇总
前面搭建好了opencv开发环境,在搭建完成后,我们通过一个简单的程序测试了下关于所安装的opencv版本好,同时给出了一个灰度图转换的效果图,这里我们将给出源码并简单分享,同事测试下BPI-M2U下摄像头的过程。
BPI-M2U下编写如下程序:
- #include <opencv2/core/core.hpp>
- #include <opencv2/imgproc/imgproc.hpp>
- #include <opencv2/highgui/highgui.hpp>
- #include <iostream>
- using namespace cv;
- using namespace std;
- int main (int argc, char **argv)
- {
- Mat image, image_gray;
- image = imread(argv[1], CV_LOAD_IMAGE_COLOR );
- if (argc != 2 || !image.data) {
- cout << "No image data\n";
- return -1;
- }
- cvtColor(image, image_gray, CV_RGB2GRAY);
- namedWindow("image", CV_WINDOW_AUTOSIZE);
- namedWindow("image gray", CV_WINDOW_AUTOSIZE);
- imshow("image", image);
- imshow("image gray", image_gray);
- waitKey(0);
- return 0;
- }
复制代码 说明:
程序开始定义了两个Mat类型的变了,分别存储原始图像和转换后的图像,后面通过argv[1]载入图像到image,然后if判断是否载入成功,同时判断程序传入参数个数,最后cvtColor(image, image_gray, CV_RGB2GRAY)实现转换,并通过窗口显示出来,效果如下:
关于摄像图调用也十分简单,代码如下:
- #include <opencv2/highgui/highgui.hpp>
- #include <opencv2/core/core.hpp>
- using namespace cv;
- int main()
- {
- VideoCapture cap(0);//打开摄像头
- if(!cap.isOpened())return -1;
- Mat frame;
- while(1){
- cap>>frame;//读取当前帧
- imshow("M2U OpenCV CAM", frame);
- if(waitKey(20) >=0) break;
- }
- return 0;
- }
复制代码 说明:
VideoCapture cap(0)打开摄像头,接着判断是否打开成功,后面定义frame用来存取图像帧,最后再while中实现不断读取帧画面,效果如下图所示。
|
|