繁体   English   中英

OpenCV:在VS2015 x64版本的Windows 10上将Qt库与cvFontQt和cvAddText一起使用时,不会显示文本

[英]OpenCV: Text does not display when using the Qt library with cvFontQt and cvAddText on Windows 10 in VS2015 x64 build

我正在尝试使用OpenCV从文本创建图像。 图像可能有也可能没有需要与之合并的叠加层。 文本的字体需要与OpenCV的C ++接口附带的HERSHEY文本不同。 我在本文和其他文章中看到,可以使用cvFontQt和cvAddText来完成。

我正在使用OpenCV 2.4.13和Qt 5.6。 在示例代码下面我可以输出第一行和第三行使用cvPutTextcvFont和HERSHEY然而使用cvAddText第二线与cvFontQt不显示。

#include "stdafx.h"
#include "opencv2\core\core_c.h"        
#include "opencv2\highgui\highgui_c.h"  

int main()
{
    // Create a window for a container to hold the image
    cvNamedWindow("cvtest", CV_WINDOW_AUTOSIZE);

    IplImage *img = cvCreateImage(cvSize(600, 300), IPL_DEPTH_64F, 4);

    // Set the image background to white
    cvSet(img, cvScalar(255, 255, 255));

    CvFont font;

    cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5);
    cvPutText(img, "cvInitFont; cvPutText: First line.", cvPoint(4, 30), &font, cvScalar(255));

    CvFont fontqt = cvFontQt("Courier New", -1, cvScalar(0,0,255), CV_FONT_NORMAL, CV_STYLE_NORMAL, 0);
    cvAddText(img, "cvFontQV; cvAddText:   Second line.", cvPoint(4, 60), &fontqt);

    cvPutText(img, "cvInitFont; cvPutText: Third line.", cvPoint(4, 90), &font, cvScalar(255));

    cvShowImage("cvtest", img);

    cvWaitKey(0);

    cvSaveImage("C:\\OpenCvTest64F.jpg", img);

    // Cleanup
    cvDestroyAllWindows();
    cvReleaseImage(&img);

    return 0;
}

生成的图像(“ C:\\ OpenCvTest64F.jpg”):

输出图像

我使用cvFontQt或cvAddText错误吗? 关于为什么它没有出现在图像中的任何想法?

使用浮点图像的任何特定原因? 如果不是,请尝试将图像初始化调整为:

IplImage *img = cvCreateImage(cvSize(600, 300), IPL_DEPTH_8U, 3);

使用3通道8位图像似乎可以解决此问题。

请注意,将颜色分配给浮点图像时,该值应在[0,1]范围内,而不是[0,255]。 而且,C ++ API更好!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM