OpenCV Qt入門


OpenCVのライブラリは本当に以前からコンパイルしたことがあって、その时も记录していないで、后で更に整理して、今日Qtの下でコンソールのプログラムを作成して、私は直接ソースコードを贴って、1つの1つの说明、実はこれらのコードも本の中から来て、私は翻訳して、更に少し私の自分の理解を加えて、みんなは原文を読むことができます
1、Qtのコンソールプログラムを作成する
2、プロジェクトプロファイルを修正する.Proファイル
QT       += core
QT       -= gui

TARGET = opcvtest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
###      ,    OpenCV           
INCLUDEPATH +=  D:\OpenCV\include

###         -L   gcc          , -l       
LIBS += -LD:\OpenCV\lib  \
-lopencv_core230.dll  \
-lopencv_highgui230.dll  \
-lopencv_imgproc230.dll  \
-lopencv_features2d230.dll  \
-lopencv_calib3d230.dll
3、main.cppを以下のコードに置き換える
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
#include<string>
int main(int argc, char *argv[])
{
    //  sdl   string      ,  '\'    
    std::string dir="I:\\photo\\info_indexbg.png";
    //             ,Mat            
    //             ,         0,   Mat size()      
    cv::Mat image;
    //    0
    std::cout << "size: " << image.size().height << " , "
              << image.size().width << std::endl;
    //    
    image = cv::imread(dir);
    //        Mat data    
    if (!image.data) {
       std::cout<<"no data be read
"; return 0; } // std::cout << "size: " << image.size().height << " , " << image.size().width << std::endl; // Windows , , cv::namedWindow(" "); // Mat , cv::Mat result; //OpenCV , cv::flip(image,result,-1); // // 0 // // cv::imshow(" ",result); // , OpenCV , jpg png, cv::imwrite("output.png", result); // cv::waitKey(0); //0 , ms return 0; }

4、マットタイプを簡単に紹介する
MatタイプはOpenCV画像記憶の基本タイプであり、OpenCVはこのタイプに対して自動的なメモリ管理を提供し、コピーを最適化した.通常のレプリケーションはMatタイプのヘッダ情報のみをコピーし、データは元のデータを指し、以下のようにする.
cv::Mat ima(240,320,CV_8U,cv::Scalar(100));
cv::Mat image2, image3;
image2= ima; //              
ima.copyTo(image3); //       copy
CV_8U   8  8   ,U  unsigned ,S  signed,CV_8UC3  C3  3