如何将使用 Qt Paint Application 绘制的图像传输到 Mat openCV
Posted
技术标签:
【中文标题】如何将使用 Qt Paint Application 绘制的图像传输到 Mat openCV【英文标题】:How to transfer the image drawn using Qt Paint Application to Mat openCV 【发布时间】:2014-09-27 14:49:26 【问题描述】:我使用 Qt 创建了一个绘图应用程序。现在,无论我画什么,我都需要处理图像。因此,我想将绘制的图像传输到 openCV 中的 Mat。我该怎么做?
【问题讨论】:
***.com/questions/11886123/… 【参考方案1】:我写了代码 sn-p 用于将屏幕截图转移到cv::Mat
,但我希望你理解主要思想,你应该进行哪个对话。
QPixmap win = QPixmap::grabWindow(QApplication::desktop()->winId());
QImage scr = win.toImage().scaled(640,480);
QImage screen = scr.convertToFormat(QImage::Format_RGB888);
cv::Mat tmp(screen.height(),screen.width(),CV_8UC3,(uchar*)screen.bits(),screen.bytesPerLine());
cvtColor(tmp, tmp,CV_BGR2RGB);
现在cv::Mat
包含这张图片。
例子:
QPixmap okno = QPixmap::grabWindow(QApplication::desktop()->winId());
QImage scr = okno.toImage().scaled(640,480);
QImage screen = scr.convertToFormat(QImage::Format_RGB888);
cv::Mat tmp(screen.height(),screen.width(),CV_8UC3,(uchar*)screen.bits(),screen.bytesPerLine());
cvtColor(tmp, tmp,CV_BGR2RGB);
cv::namedWindow("d");
cv::imshow("d",tmp);
imshow
正确显示cv::Mat
。
【讨论】:
出现错误,未定义对cv::fastFree(void*)', undefined reference to
cv::Mat::deallocate()'的引用
@user3747190 我的示例代码没有问题,您的项目有问题,谷歌给出的所有链接都表示链接库有问题。以上是关于如何将使用 Qt Paint Application 绘制的图像传输到 Mat openCV的主要内容,如果未能解决你的问题,请参考以下文章
Qt。如果我在 QStyledItemDelegate 中定义了 paint() 方法,则方法 displayText() 不起作用