第一章 Opencv基础

第一章 Opencv基础,第1张

1.QT安装和Opencv的搭建

Notice:

1. 为了匹配QT框架,需要重新编译Opencv的源码(3.4.5)

2. 需要在.pro文件中加: 

#导入头文件

INCLUDEPATH+=D:\opencv\opencv345\opencv-build\install\include

#导入库文件

LIBS +=D:\opencv\opencv345\opencv-build\lib\libopencv_*.a

2. 常用的Opencv *** 作
#include
/**********(1)创建Mat对象的三种方式***********/
// 1
   Mat img(2,2,CV_8UC3,Scalar(0,255,255));
// 2
   Mat img;img.create(4,4,CV_8UC(2));
// 3
   Mat array = Mat::zeros(4,4,CV_8UC1);
​
/**********(2)复制***********/
// 1
Mat clone;
srcImg.copyTo(clone);
// 2
Mat clone = srcImg.row(1).clone();
​
/**********(3)读图片***********/
Mat srcImg = imread("./1.jpg");
if(srcImg.data != NULL)
{
    imshow("srcImg",srcImg);
    imwrite("./2.jpg",srcImg);
    waitKey(0);
}
​
/**********(4)打开视频***********/
cv::VideoCapture cap;
cap.open(0);
Mat edge;
​
while(1)
{
    Mat frame;
    cap >> frame;
    cvtColor(frame,edge,CV_BGR2GRAY);
    blur(edge,edge,Size(7,7));
    Canny(edge,edge,0,30,0);
    imshow("Gauss Blur Video",edge); 
    if(waitKey(30) >= 0)
        break;    
}
​
/**********(5)打开设备摄像头,并录制视频,保存为.avi文件***********/
cv::VideoCapture cap;
Mat frame;
cap.open(0);
​
VideoWriter out;
string outputVideoPath = "D:\\opencv\\test.avi";
cv::Size sWH = cv::Size((int)cap.get(CV_CAP_PROP_FRAME_WIDTH),
                        (int)cap.get(CV_CAP_PROP_FRAME_HEIGHT));
​
out.open(outputVideoPath, CV_FOURCC('M', 'J', 'P', 'G'), 50, sWH);
​
if(out.isOpened())
{
    cout << "out Opened!"<> frame;
    if(frame.empty())
    {
        cout << "Video process finished!" << endl;
        return 0;
    }
​
    imshow("video",frame);
    if(waitKey(10) == 'q')break;
    out << frame;
}
​
cap.release();
​

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1498302.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-25
下一篇2022-06-25

发表评论

登录后才能评论

评论列表(0条)

    保存