Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)

这篇具有很好参考价值的文章主要介绍了Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

不是所有格式的Mat型数据都能被使用。
目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。
如果Mat类型数据的深度和通道数不满足上面的要求,则需要使用convertTo()函数和cvtColor()函数来进行转换。
convertTo()函数负责转换数据类型不同的Mat,即可以将类似float型的Mat转换到imwrite()函数能够接受的类型。
而cvtColor()函数是负责转换不同通道的Mat,因为该函数的第4个参数就可以设置目的Mat数据的通道数(只是我们一般没有用到它,一般情况下这个函数是用来进行色彩空间转换的)。

函数

void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const;
  • m  目标矩阵。如果m在运算前没有合适的尺寸或类型,将被重新分配。
  • rtype  目标矩阵的类型。因为目标矩阵的通道数与源矩阵一样,所以rtype也可以看做是目标矩阵的位深度。如果rtype为负值,目标矩阵和源矩阵将使用同样的类型。
  • alpha  尺度变换因子(可选)。
  • beta  附加到尺度变换后的值上的偏移量(可选)。

测试代码

#include "widget.h"
#include "ui_widget.h"

#include <QDebug>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //载入图片
    cv::Mat mat1 = imread("c:/opencv/111.jpg");
    //输出对象
    cv::Mat mat2;
    //运算
    mat1.convertTo(mat2,CV_32F,1.0/255,0);
    //显示
    imshow("mat1",mat1);
    imshow("mat2",mat2);
    //输出图像信息
    qDebug()<<"mat1的类型是:"<<mat1.type();
    qDebug()<<"mat2的类型是:"<<mat2.type();

}

Widget::~Widget()
{
    delete ui;
}

 测试结果

Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)

参考

OpenCV—矩阵数据类型转换cv::convertTo 

openCV中convertTo的用法

对比度亮度图像增强及convertTo详解

openCV中convertTo的用法

OpenCV 中的 convertTo 函数OpenCV之颜色空间转换:cvtColor()和convertTo()函数文章来源地址https://www.toymoban.com/news/detail-441467.html

到了这里,关于Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】【Opencv】形态学操作cv2.morphologyEx()函数详解和示例,实现腐蚀、膨胀、闭和开等运算

    常用的形态学操作如腐蚀、膨胀、开运算、闭运算等,可以帮助我们解决一下图像不连接或消除图像中某些不想要的连接,对于图像处理使用方便,效果明显。本文通过示例对这些功能和效果进行演示,以帮助大家理解和使用。 cv2.morphologyEx 是 OpenCV 中的一个函数,用于执行

    2024年02月22日
    浏览(55)
  • opencv 基础50-图像轮廓学习03-Hu矩函数介绍及示例-cv2.HuMoments()

    Hu 矩(Hu Moments)是由计算机视觉领域的科学家Ming-Kuei Hu于1962年提出的一种图像特征描述方法。这些矩是用于描述图像形状和几何特征的不变特征,具有平移、旋转和尺度不变性,适用于图像识别、匹配和形状分析等任务。 Ming-Kuei Hu在其论文中提出了七个用于形状描述的独特

    2024年02月13日
    浏览(56)
  • 【笔记】OpenCV图像基本操作

    目录 一、图像属性 1.1图像格式 1.2图像尺寸 1.3图像分辨率和通道 1.4图像直方图 1.5图像颜色空间 二、基本操作 2.1 图像读取 cv2.imread() 2.2 图像的显示 cv2.imshow() 2.3 图像的保存 cv2.imwrite() 2.4 用matplotlib显示图像 plt.imshow() 2.5 视频读取 cv2.VideoCapture() 2.6 图像截取、颜色通道提取

    2024年02月03日
    浏览(117)
  • 『CV学习笔记』Opencv和PIL Image以及base64编码互相转化

    Opencv和PIL Image以及base64编码互相转化

    2024年02月13日
    浏览(36)
  • 【跟官网学opencv-python】笔记1.2:opencv基本绘图函数

    目录 前言 目标 函数详解 1、cv2.line()画线 2、cv2.rectangle()画矩形 3、cv2.circle()画圆 4、cv2.ellipse()画椭圆 5、cv2.polylines()画多边形 6、cv2.putText()绘制文本 代码演示 运行效果 参考 跟着官网学习才是基础入门的最佳选择,下文是opencv-python官网的学习记录及扩展! 掌握基本绘图函数

    2024年02月07日
    浏览(65)
  • opencv学习(一)图像的基本操作

    cv2.IMREAD_COLOR:彩色图像 cv2.IMREAD_GRAYSCALE:灰度图像 cv2.imread()读取图片,当括号里面是 1 时,也就是替代了cv2.IMREAD_COLOR,得到 彩色图 。 cv2.imread()读取图片,当括号里面是 0 时,替代了cv2.IMREAD_GRAYSCALE,得到 灰度图 。 cv.inshow()函数为创建一个展示窗口,括号里面分别为 图片名字

    2024年02月05日
    浏览(51)
  • [OpenCV学习笔记]Qt+OpenCV实现图像灰度反转、对数变换和伽马变换

    灰度反转是一种线性变换,是将某个范围的灰度值映射到另一个范围内,一般是通过灰度的对调,突出想要查看的灰度区间。 S = L − 1 − r ( r ⊂ [ 0 , L − 1 ] ) S = L -1-r (r subset [0,L-1]) S = L − 1 − r ( r ⊂ [ 0 , L − 1 ]) 比如在以下胸片图像中提取白色絮状形状,在黑色背景下看

    2024年04月13日
    浏览(39)
  • python学习-->opencv图像基本操作学习之灰度图转换

    好久没更新,趁今天要做核酸回不了宿舍,把今天的学习的opencv知识先记录一下! 运行环境是:pycharm 话不多说,献上代码再说: 首先我们先读取我们的图片进来! 跟着我们先尝试一下在打开我们的图片看看! 下面是实现的代码! 运行之后我的图片是这样的 我们可以看看图

    2024年02月08日
    浏览(48)
  • 学习笔记-mysql-各种函数的基本使用

    count , sum , min , max ,avg , group_concat() (1). if逻辑判断 (2). case when mysql 8.0之后增加的,也称为开窗函数 (1). 序号函数 row_number( ) --排序 1,2,3 rank( ) --排序 1,1,3 dense_rank( ) --排序 1,1,2 另外还有开窗聚合函数:sum avg min max (2). 分布函数 cume_dist() 用途:分组内小于、等于当前rank值的行数

    2024年01月20日
    浏览(43)
  • OpenCV中的cv::abs()函数

    OpenCV是一款广泛使用的计算机视觉和图像处理的开源库,其中的cv::abs()函数用于计算数字的绝对值。本文将深入探讨cv::abs()函数的基本概念、用法以及在图像处理中的应用,帮助读者更好地理解和应用这一函数。 在图像处理和计算机视觉领域, 经常需要对图像或数字进行绝

    2024年03月21日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包