在OpenCV中,有时会出现如Mat_<Vec3f>图像类型,直接用cvsaveImage或者imwrite保存,会出现一片黑色。保存失败:

如下

这是定义格式问题

此时,需要转换正确的格式才能保存成功

OpenCV中有convertTo函数

是一种格式转换函数

具体如下

——————————————————————————————————————————————————

Mat::convertTo
Converts an array to another data type with optional scaling.
C++: void Mat::convertTo(OutputArray m, int rtype, double alpha=1, double beta=0 ) const
Parameters
m – output matrix; if it does not have a proper size or type before the operation, it is reallocated.
rtype – desired output matrix type or, rather, the depth since the number of channels are the
same as the input has; if rtype is negative, the output matrix will have the same type as the
input.
alpha – optional scale factor.
beta – optional delta added to the scaled values.
The method converts source pixel values to the target data type. saturate_cast<> is applied at the end to avoid
possible overflows:
m(x; y) = saturate_cast < rType > ( (this)(x; y) + )

————————————————————分割线——————————————————————————————

Mat::convertTo

在缩放或不缩放的情况下转换为另一种数据类型。

C++:

void Mat::convertTo(OutputArray m,int rtype,double alpha=1,double beta=0)const

参数:

m – 目标矩阵。如果它的尺寸和类型不正确,在操作之前会重新分配。

rtype – 要求是目标矩阵的类型,或者在当前通道数与源矩阵通道数相同的情况下的depth。如果rtype 为负,目标矩阵与源矩阵类型相同。

beta – 可选的delta加到缩放值中去。

该方法将源像素值转化为目标类型saturate_cast<> 要放在最后以避免溢出

m( x;y) = saturate_cast < rType > ( α*( *this)( x;y) +β)

——————————————————————————————————————————————————

具体实现如下:

Mat_<Vec3f> blend = LaplacianBlend(l, r, m);imshow("blended",blend);Mat re;blend.convertTo(re,CV_8UC3,255);imwrite("blended.jpg",re);

结果:

Mat_<Vec3f>源自这里

保存OpenCV中Mat_Vec3f格式的图像相关推荐

  1. OpenCV中利用cvConvertScale()将图像的数据类型由u8转化为64f...

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 OpenCV中利用cvConvertScale( ...

  2. 在Python中使用OpenCV将RGB格式的图像转换为HSV格式的图像

    An HSV is another type of color space in which H stands for Hue, S stands for Saturation and V stand ...

  3. OpenCV中的三种图像数据结构CvMat, IplImage和Mat(二)IplImage

    本文为原创,若有错误欢迎批评指正! 一. IplImage结构体构成 IplImage比CvMat要复杂一些,结构体组成如下: typedef struct _IplImage { int nSize ...

  4. OpenCV 【一】—— OpenCV中数组指针、图像分块计算、指针取像素值与MatToEigen方法,内存对齐

    { Topic1: 高效开辟内存,使适用于大型数组.//开辟新数组,或者开辟新的0或者某一数值的数组/Mat或者Map直接使用memset //大数组操作效率较高 举例1:cv::Mat cv_ncc ...

  5. 在OpenCV中利用卷积进行图像滤波

    简 介: 本文首先讨论了卷积核的概念,以及如何用于对图像进行滤波.然后通过他们对图像进行数学运算来实现特定的效果,比如平和和锐化.展示了如何在OpenCV中实现2D滤波. 在等同卷积卷积核之后,我们创 ...

  6. 使用opencv中的方法进行图像保存时,出现保存的图像全黑的问题

    最近在做的工作,需要对图像进行预处理,所以在尝试学习使用opencv.今天在进行gamma校正去除阴影时,发现保存的校正后的图像是全黑的. 因为是做农业图像处理,所以就随手拍了个玉米粒的图像(如下左图 ...

  7. OpenCV中利用cvConvertScale()对图像数据作线性变换

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV的IplImage结构体char ...

  8. OpenCV中Mat类的图像如何设置ROI

    Mat类表示的图像进行ROI操作有两种方法 (1)使用拷贝构造函数Mat(constMat& m, const Rect& roi ),矩形roi指定了兴趣区 例如: [cpp] vi ...

  9. OpenCV中cv2的用法

    OpenCV中cv2的用法 一.读入图像 使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志  cv2.IMR ...

最新文章

  1. laravel 目录
  2. Win10不能使用Genymotion模拟器的解决方案
  3. 服务器同时装mysql和sqlserver_Centos创建syslog服务器
  4. 2003-can't connect to MYSQL server on 'localhost'(10038)
  5. 回归分析beta值的标准_学好这20%,就能解决80%的数据分析问题 | 数据产品经理必看...
  6. DEV MessageBox
  7. LeetCode 655. Print Binary Tree (C++)
  8. Image Segmentation(图像分割)网络结构比较
  9. 王家林 Scala 深入浅出实战经典视频教程
  10. Linux系统命令 - 查看内存使用情况
  11. (转)简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)
  12. HDU 5144 NPY and shot(三分法)
  13. 计算机课代表总结,计算机班的班主任工作总结.doc
  14. 4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
  15. 基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性
  16. 《Happy Birthday》游戏开发记录(送给朋友的小礼物)
  17. 游戏微服务架构设计:棋牌游戏
  18. Python-Opencv实现魔方边缘识别
  19. Formatter(格式化)和 Converter(格式化)
  20. dos命令根据大小查询文件

热门文章

  1. weblogic-修改控制台登录密码
  2. Google Chrome 源码下载地址 (Google Chrome Source Code Download)
  3. 2015推荐的Android框架
  4. finally引起的异常丢失问题
  5. play framework anorm orm 化构想
  6. MOQL--操作数(Operand) (三)
  7. 【动态规划 斐波那切数列】LeetCode 746. Min Cost Climbing Stairs
  8. 判别式模型和生成式模型的区别(discriminative model and generative model)
  9. [2019牛客]第一场
  10. Reactor模型-单线程版