【问题标题】:Convert jpeg image mat to tiff将 jpeg 图像垫转换为 tiff
【发布时间】:2014-06-18 12:32:00
【问题描述】:

我正在使用 openCV 和 libjpeg 有没有办法将 jpeg 黑白图像转换为 Tiff, 我需要这样做而不将 CV::mat 保存到文件中吗?

谢谢

【问题讨论】:

  • 你考虑过imencode吗?
  • 有办法将其转换回 tiff mat 吗?
  • TIFF 是一种文件格式,与Mat 无关。无论你用它做什么,都是一样的——当你 imread 时,图像只会被解码,而当你 imwrite (或 imdecodeimencode 从/到内存缓冲区)时,图像只会被解码。
  • 谢谢,从 jpeg 转换成 tiff 的约定怎么样?

标签: opencv image-processing libjpeg


【解决方案1】:

您可以使用cv::imencode() 获取一个 Mat 并将其编码为字节向量:

// bool imencode(const string& ext, InputArray img, vector<uchar>& buf, const vector<int>& params=vector<int>())¶

cv::Mat image = cv::imread("image.jpg");
std::vector<uchar> buf;
imencode(".tiff", image, buf);

TIFF 编码结果在 buf 中。

【讨论】: