最近使用OpenCV的函数保存图像,发现这里面存在诸多的坑,经过多次尝试,这才发现原来保存图像也是一门学问哦!之前已经写过一篇图像读写的博客:opencv读写图像问题!,这里再写一篇作为补充。
一、类型转换
1.Mat数据的类型
opencv中的mat数据类型共包含28种:
| 类型 | C1 | C2 | C3 | C4 |
|---|---|---|---|---|
| CV_8U | 0 | 8 | 16 | 24 |
| CV_8S | 1 | 9 | 17 | 25 |
| CV_16U | 2 | 10 | 18 | 26 |
| CV_16S | 3 | 11 | 19 | 27 |
| CV_32S | 4 | 12 | 20 | 28 |
| CV_32F | 5 | 13 | 21 | 29 |
| CV_64F | 6 | 14 | 22 | 30 |
opencv提供了获取类型的函数:type()
这里提供一个简单的获取类型名的代码:
#include <string>
#include <opencv2/opencv.hpp>
using namespace std;
using namesapce cv;
string getImageType(Mat img)
{
int type = img.type();
string channel = "";
string depth = "";
// 判断通道数
if (type >= 0 && type <= 6)
{
channel += "C1";
}
else if (type >= 8 && type <= 14)
{
channel +=

最低0.47元/天 解锁文章
1012





