如何保存图像框
how to save image frame?
我正在尝试找到 10 张图像的平均值,下面的代码做得很好,因为我使用 imshow() 看到了这一点,但是当我尝试保存结果图像时,它会保存一个完全黑色的图像。有人请告诉我我的代码有什么问题?
int main(){
cv::Mat frame32f,temp;
char filename[40];
Mat mean;
const int count =10;
const int width =474;
const int height = 266;
cv::Mat resultframe = cv::Mat::zeros(height,width,CV_32FC3);
for(int i = 1 ; i<= count; i++){
sprintf(filename,"%d.JPG",i);
cout<<filename;
IplImage* img = cvLoadImage(filename,CV_LOAD_IMAGE_COLOR);
Mat frame(img);
frame.convertTo(frame32f,CV_32FC3);
resultframe +=frame32f;
frame.release();
}
resultframe *= (1.0/count/255);
imwrite("avg.jpg",resultframe);
imshow("previous",resultframe);
waitKey(0);
return 0;
}
我也尝试过这个,但不能。
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9);
try {
imwrite("result.png", mat, compression_params);
}
imwrite/imread无法处理浮点数据,因此在保存之前convertTo()uchar。
Mat bgr24;
resultframe.convertTo(bgr24, CV_8U);
imwrite("lala.jpg",bgr24);
(哦,顺便说一句,请在分区之前)
你为什么要除以 255?
尝试除以 1.0/计数。
另外,如果您事先知道计数的值,请在加法之前进行除法。
相关文章:
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 是否可以通过每次在内存中仅保存一个平铺来处理完整的平铺 tiff 图像?
- 将图像魔术 blob 保存到节点缓冲区
- 是否可以将图像列表保存到文件中?
- 在opencv c++目录中从/加载/保存多个图像
- 将 JPG 编码数组从 ROS sensor_msgs/压缩图像保存到 roscpp 中的文件
- 我想将 OpenCV 中处理后的图像保存为“input_name+enhanced.input_image_format
- 无法将图像保存在具有白色背景的JPG中 OpenCV
- c++:尝试将创建的图像保存到.jpg文件,但图像无法打开
- 将许多图像保存到矢量中,但它们不显示
- QT:将整个QSCrollarea内容作为图像保存
- 打开CV图像保存以较小的尺寸,无需压缩
- 将图像保存到内存
- Boost::GIL如何将图像保存为JPEG或PNG为char*
- c++ 32位tiff图像保存和加载
- 如何将图像保存为字符串的c++源代码
- 使用opencv将图像保存为ycbcr格式