1. 程式人生 > >OpenCV繪製文字的程式碼及Mat/IplImage的轉換

OpenCV繪製文字的程式碼及Mat/IplImage的轉換

  特別注意IplImage與Mat的轉換。

static void draw_count(FrameData* pFrame)
{
    CvSize size;

    if (!(pFrame->buffer.data))
    {
        return;
    }
    size.width = pFrame->size2d.width;
    size.height= pFrame->size2d.height;

    IplImage* iplImage = cvCreateImageHeader(size, IPL_DEPTH_8U, SIZE_ARGB);
    cvSetData(iplImage, pFrame->buffer.data, size.width*SIZE_ARGB);

    CvScalar color;
    color.val[0] = 0xFF;
    color.val[1] = 0;
    color.val[2] = 0xFF;
    color.val[3] = 0;

    cvRectangle(iplImage, cvPoint(200,200), cvPoint(300,400), color, CV_FILLED, 8, 0);

    cv::Mat m1 = cv::cvarrToMat(iplImage); 
    putText(m1, "Quantum", Point(100,100), FONT_HERSHEY_SIMPLEX, 1, color);

}

據說由Mat轉換為IplImage,直接使用即可:

Mat mat1;
IplImage* ip1= &mat1;