保存OpenCV中Mat_Vec3f格式的图像
在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格式的图像相关推荐
- OpenCV中利用cvConvertScale()将图像的数据类型由u8转化为64f...
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 OpenCV中利用cvConvertScale( ...
- 在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 ...
- OpenCV中的三种图像数据结构CvMat, IplImage和Mat(二)IplImage
本文为原创,若有错误欢迎批评指正! 一. IplImage结构体构成 IplImage比CvMat要复杂一些,结构体组成如下: typedef struct _IplImage { int nSize ...
- OpenCV 【一】—— OpenCV中数组指针、图像分块计算、指针取像素值与MatToEigen方法,内存对齐
{ Topic1: 高效开辟内存,使适用于大型数组.//开辟新数组,或者开辟新的0或者某一数值的数组/Mat或者Map直接使用memset //大数组操作效率较高 举例1:cv::Mat cv_ncc ...
- 在OpenCV中利用卷积进行图像滤波
简 介: 本文首先讨论了卷积核的概念,以及如何用于对图像进行滤波.然后通过他们对图像进行数学运算来实现特定的效果,比如平和和锐化.展示了如何在OpenCV中实现2D滤波. 在等同卷积卷积核之后,我们创 ...
- 使用opencv中的方法进行图像保存时,出现保存的图像全黑的问题
最近在做的工作,需要对图像进行预处理,所以在尝试学习使用opencv.今天在进行gamma校正去除阴影时,发现保存的校正后的图像是全黑的. 因为是做农业图像处理,所以就随手拍了个玉米粒的图像(如下左图 ...
- OpenCV中利用cvConvertScale()对图像数据作线性变换
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 在OpenCV的IplImage结构体char ...
- OpenCV中Mat类的图像如何设置ROI
Mat类表示的图像进行ROI操作有两种方法 (1)使用拷贝构造函数Mat(constMat& m, const Rect& roi ),矩形roi指定了兴趣区 例如: [cpp] vi ...
- OpenCV中cv2的用法
OpenCV中cv2的用法 一.读入图像 使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMR ...
最新文章
- laravel 目录
- Win10不能使用Genymotion模拟器的解决方案
- 服务器同时装mysql和sqlserver_Centos创建syslog服务器
- 2003-can't connect to MYSQL server on 'localhost'(10038)
- 回归分析beta值的标准_学好这20%,就能解决80%的数据分析问题 | 数据产品经理必看...
- DEV MessageBox
- LeetCode 655. Print Binary Tree (C++)
- Image Segmentation(图像分割)网络结构比较
- 王家林 Scala 深入浅出实战经典视频教程
- Linux系统命令 - 查看内存使用情况
- (转)简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)
- HDU 5144 NPY and shot(三分法)
- 计算机课代表总结,计算机班的班主任工作总结.doc
- 4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
- 基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性
- 《Happy Birthday》游戏开发记录(送给朋友的小礼物)
- 游戏微服务架构设计:棋牌游戏
- Python-Opencv实现魔方边缘识别
- Formatter(格式化)和 Converter(格式化)
- dos命令根据大小查询文件
热门文章
- weblogic-修改控制台登录密码
- Google Chrome 源码下载地址 (Google Chrome Source Code Download)
- 2015推荐的Android框架
- finally引起的异常丢失问题
- play framework anorm orm 化构想
- MOQL--操作数(Operand) (三)
- 【动态规划 斐波那切数列】LeetCode 746. Min Cost Climbing Stairs
- 判别式模型和生成式模型的区别(discriminative model and generative model)
- [2019牛客]第一场
- Reactor模型-单线程版