gpt4 book ai didi

c++ - 在opencv和wxwidgets之间转换图像

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:42 27 4
gpt4 key购买 nike

我有一个大问题。在网上搜索后,没有找到很好的解决办法。我通过 opencv (2.3) 从文件中读取图像并对其进行操作。之后我想在我用 wxwidgets (2.9.3) 编写的应用程序中显示结果。主要问题是,我的图像是灰度的,所以我只有一个数据指针,但 wxwidgets 只使用 RGB。只是一个小例子:

cv::imread(filename,CV_LOAD_IMAGE_GRAYSCALE).convertTo(pictureMatrix,CV_32F,(float)(1/2.0f),0);
// here are some more floating point calculations
cv::Mat output;
pictureMatrix.convertTo(output,CV_8U);
wxImage test(output.rows, output.cols, output.data, true);
wxInitAllImageHandlers();
// saving the picture is just for testing, if it works
test.SaveFile("test.png", wxBITMAP_TYPE_PNG);

最佳答案

您需要做的就是将灰度转换为 RGB(实际上,如果您使用的是 Windows,则转换为 BGR)。

cv::Mat grayOutput, rgbOutput;
pictureMatrix.convertTo(grayOutput,CV_8U);
cvtColor(grayOutput, rgbOutput, CV_GRAY2BGR); // note the BGR here.
//If on Linux, set as RGB
wxImage test(rgbOutput.cols, rgbOutput.rows, rgbOutput.data, true);
...

关于c++ - 在opencv和wxwidgets之间转换图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com