此示例代码将显示正确创建的图像,但将保存仅包含黑色像素的png.Mat是CV_32FC3格式,因此3个浮点数通道.
我发现的已回答的问题涉及图像处理问题或转换不正确或使用各种压缩保存在jpeg中.
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
int i = 0;
int j = 0;
Vec3f intensity;
cv::Mat imageF;
imageF= cv::Mat::zeros(36,36,CV_32FC3);
for(j=0;j<imageF.cols;++j){
for(i=0;i<imageF.rows;++i){
intensity = imageF.at<Vec3f>(j, i);
intensity.val[2] = 0.789347;
intensity.val[1] = 0.772673;
intensity.val[0] = 0.692689;
imageF.at<Vec3f>(j, i) = intensity;
}}
imshow("Output", imageF);
imwrite("test.png", imageF);
waitKey(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
需要进行哪些更改才能使其按预期保存?
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main() {
int i = 0;
int j = …Run Code Online (Sandbox Code Playgroud)