我目前正在用c ++编写视频分段程序,并希望使用opencv逐帧读取视频。 虽然它看起来效果很好,但在阅读(和写入)图像时我注意到了一些微小的变化。 我读取和写入图像的代码基本上如下(尽管我通常继续使用创建的图像矩阵):
Videocapture cap = VideoCapture(filename);
int counter = 0;
while(1) {
Mat tmp;
cap >> tmp;
if(tmp.empty()) {
//cout << "scanned all frames" << endl;
break;
}
//save frames as jpeg
stringstream filename;
filename << "original" << counter;
counter++;
}
这些代码可以很好地工作,但是颜色会发生一些微小的变化,我想消除这些变化。 这是源图像(放大): https://picload.org/image/rdddagor/source.png
这是创建的(也放大): https://picload.org/image/rdddagir/opencv.png
有没有办法保持原始图像质量?
答案 0 :(得分:0)
正如@Miki所提到的,我只需将图像保存为&#34; .png&#34; (或任何其他无损格式)。