qt使用opencv2将mat格式压缩后追加到mat文件中
时间: 2024-04-29 07:21:30 浏览: 100
要将OpenCV中的Mat格式压缩并追加到Mat文件中,你需要使用以下步骤:
1. 定义一个名为“压缩参数”的变量,并设置压缩类型和质量:
```
std::vector<int> 压缩参数;
压缩参数.push_back(CV_IMWRITE_JPEG_QUALITY); // JPEG压缩
压缩参数.push_back(80); // 压缩质量值,0-100之间,值越高质量越好
```
2. 加载需要压缩的Mat文件:
```
cv::Mat 源Mat = cv::imread("源文件.jpg");
```
3. 创建一个名为“压缩缓存”的向量,并使用imencode函数将源Mat数据压缩到该向量中:
```
std::vector<uchar> 压缩缓存;
cv::imencode(".jpg", 源Mat, 压缩缓存, 压缩参数);
```
4. 加载目标Mat文件,并使用push_back函数将压缩后的数据追加到其中:
```
cv::Mat 目标Mat = cv::imread("目标文件.jpg");
目标Mat.push_back(cv::Mat(1, 压缩缓存.size(), CV_8UC1, &压缩缓存[0]).reshape(0, 1));
```
5. 保存目标Mat文件:
```
cv::imwrite("目标文件.jpg", 目标Mat);
```
这样,你就可以将压缩后的Mat数据追加到Mat文件中了。
阅读全文