近日在用opencv做一些图像处理的操作时,需要对一些高分辨率的图像进行保存。比如,在操作一个容量为230M的图像后,并对该图像保存为JPG格式后,发现图像容量变为80M了!针对这个问题,忙了大半天,到处翻阅资料,终于知道为什么了。
先举个例子说明自己遇到的问题,为了看出效果,我特意用了一个高分辨率的图片做实验。
比如我有如下的一个233M的图片
经过下面的程序读进内存,再次保存后,图片容量就急剧变小了!
#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat img = imread("src1.jpg");
imwrite("test.jpg", img);
return 0;
}
保存后的图片,只剩下126M了!怎么回事!我什么都没做啊,图片大小怎么就大大缩水了呢?