我试图创建一个功能,使得可以使用OpenCV 3.1设置QImage的对比度/亮度。这完美的作品在释放,但在调试(它返回一个空白图像):OpenCV垫不能在调试模式下工作
QImage getNewImage(QImage *img, float contrast, float brightness)
{
// Convert image to temporary cv::Mat with a deep copy
// Output format is BGRA
cv::Mat temp(img->height(),img->width(),CV_8UC4,(uchar*)img->bits(),img->bytesPerLine());
temp.convertTo(temp, -1, contrast, brightness);
cv::cvtColor(temp, temp, CV_BGRA2RGB);
// Convert back to QImage RGB
QImage dest((const uchar *) temp.data, temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
return dest;
}
你看到可能是什么问题呢?
编辑
我的.pro(两个相关的DLL都在bin目录)。
INCLUDEPATH += ../lib/opencv/include
CONFIG(debug, debug|release) {
LIBS += ../lib/opencv/opencv_world310d.lib
} else {
LIBS += ../lib/opencv/opencv_world310.lib
}
包括:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
您是否在项目设置中添加了所有库? – Viktoria
你如何建立这个?你可以在这里分享你的qmake/cmake文件吗?也许有什么优化..? –
_“//将图像转换为具有深层副本的临时cv :: Mat”_不是深层复制,btw – Miki