opencv常用的基础小工程

举报
ShaderJoy 发表于 2021/12/30 00:56:16 2021/12/30
【摘要】 文章出自 本文中将列出opencv需常用的最小工程,以方便今后做测试用。   工程环境为vs2010+opencv2.3.1 一、opencv读取图片并显示出来: #include "stdafx.h" #include <opencv2/highgui/highgui.hpp> using name...

文章出自

本文中将列出opencv需常用的最小工程,以方便今后做测试用。

  工程环境为vs2010+opencv2.3.1

一、opencv读取图片并显示出来:


  
  1. #include "stdafx.h"
  2. #include <opencv2/highgui/highgui.hpp>
  3. using namespace cv;
  4. int main(int argc,unsigned char* argv[])
  5. {
  6. Mat img_src;
  7. for (;;)
  8. {
  9. img_src=imread("lena.jpg");
  10. imshow("lena_show",img_src);
  11. waitKey(30);
  12. }
  13. return 0;
  14. }


二、opencv读取avi文件并显示出来:

  注意有些avi格式的视频是读不出来的。


  
  1. #include "stdafx.h"
  2. #include <opencv2/highgui/highgui.hpp>
  3. using namespace cv;
  4. int main(int argc,unsigned char* argv[])
  5. {
  6. Mat img_src;
  7. VideoCapture vido_file("tree.avi");
  8. for (;;)
  9. {
  10. vido_file >>img_src;
  11. imshow("video_src",img_src);//可以事先不用新建一个窗口
  12. char c=(char)waitKey(47);
  13. if (c==27)
  14. {
  15. break;
  16. }
  17. }
  18. return 0;
  19. }


三、opencv驱动摄像头并显示出来:


  
  1. #include "stdafx.h"
  2. #include <opencv2/highgui/highgui.hpp>
  3. using namespace cv;
  4. int main(int argc,unsigned char* argv[])
  5. {
  6. Mat img_src;
  7. VideoCapture cam(0);
  8. for (;;)
  9. {
  10. cam >>img_src;
  11. imshow("camera",img_src);//可以事先不用新建一个窗口
  12. char c=(char)waitKey(30);
  13. if (c==27)
  14. {
  15. break;
  16. }
  17. }
  18. return 0;
  19. }


四、opencv打开摄像头并对摄像头内视频进行canny边缘检测。

   以下的环境改为:opencv2.4.2+vs2010


  
  1. // cam_test.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <opencv2/core/core.hpp>
  5. #include <opencv2/highgui/highgui.hpp>
  6. #include <opencv2/imgproc/imgproc.hpp>
  7. #include <iostream>
  8. #pragma comment( lib, "opencv_core242.lib" )
  9. #pragma comment( lib, "opencv_highgui242.lib" )
  10. #pragma comment( lib, "opencv_imgproc242.lib" )
  11. using namespace cv;
  12. using namespace std;
  13. int main( int argc, const char **argv )
  14. {
  15. VideoCapture cap(0); // open the default camera
  16. if(!cap.isOpened()) // check if we succeeded
  17. return -1;
  18. Mat edges;
  19. namedWindow("edges",1);
  20. for(;;)
  21. {
  22. Mat frame;
  23. cap >> frame; // get a new frame from camera
  24. cvtColor(frame, edges, CV_BGR2GRAY);
  25. GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
  26. Canny(edges, edges, 0, 30, 3);
  27. imshow("edges", edges);
  28. if(waitKey(30) >= 0) break;
  29. }
  30. // the camera will be deinitialized automatically in VideoCapture destructor
  31. return 0;
  32. }


五、矩阵方式 resize图像缩放代码


   
  1. double scale=0.5; //设置缩放倍数
  2. string imageurl = "F:/opencv/samples/cpp/baboon.jpg";
  3. Mat image =imread(imageurl);Â
  4. //缩放
  5. Size dsize = Size(image.cols*scale,image.rows*scale);
  6. Mat image2 = Mat(dsize,CV_32S);
  7. resize(image, image2,dsize);

首先定义scale变量,图片要缩放的倍数。

然后用Mat函数创建image矩阵,并加载图像。

Size函数是设置图像框架大小

resize函数调整图片大小。

文章来源: panda1234lee.blog.csdn.net,作者:panda1234lee,版权归原作者所有,如需转载,请联系作者。

原文链接:panda1234lee.blog.csdn.net/article/details/8925737

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。