此代码适用于我并正确显示图像:
int main()
{
cv::Mat input = cv::imread("C:/StackOverflow/Input/Lenna.png");
cv::Mat inputImg = input;
int COLOR_COMPONENTS = inputImg.channels();
int _width = inputImg.cols;
int _height = inputImg.rows;
//to std::vector and back
std::vector<uchar> vec;
size_t size_of_buffer = _width * _height*COLOR_COMPONENTS;
unsigned char* buffer = inputImg.data;
vec.assign(buffer, buffer + size_of_buffer);
uchar* _compressed = reinterpret_cast<uchar*>(vec.data());
cv::Mat mat = cv::Mat(_height, _width, inputImg.type(), _compressed);
cv::imshow("output", mat);
cv::waitKey(0);
return 0;
}
带OpenCV 3.4的Visual Studio 2013