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;

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/84653745