随笔分类 - OpenCV
摘要:在opencv中,reshape函数比较有意思,它既可以改变矩阵的通道数,又可以对矩阵元素进行序列化,非常有用的一个函数。 函数原型: C++: Mat Mat::reshape(int cn, int rows=0) const 参数比较少,但设置的时候却要千万小心。 cn: 表示通道数(chan
阅读全文
摘要:先说merge()函数: C++ 的函数原型如下。 C++:void merge(const Mat *mv,size_t count,OutputArray dst); C++:void merge(InputArrayOfArrays mv,OutputArray dst); 变量介绍如下。 第
阅读全文
摘要:QImage 转 Mat //Qt读入彩色图后一般为Format_RGB32格式(4通道),而OpenCV一般用3通道的,因此进行了转换。 cv::Mat QImage2Mat(QImage image) { cv::Mat mat; switch (image.format()) { case Q
阅读全文
摘要:以三维的Mat数据布局为例 step这里指出的是图像在各个梯级上的字节数大小,而这里的梯级指的是构成图像的名层次。 上图三维图像由一个一个名面(第一级)构成,每一个平面由一行一行(第二级)构成,每行由一个一个点(第三级)构成。 同理:二维图像由一行一行(第一级)构成,而每一行又由一个一个点(第二级)
阅读全文
摘要:问题: 在opencv3.4.2版本下写直方图归一化,不报错: //将直方图归一化到[0,histImage.rows] cv::normalize(Hist, Hist, 0, histImage.rows, CV_MINMAX, -1, cv::Mat()); 换了电脑和opencv 4.2 版
阅读全文
摘要:项目原因,需要将GPU加速后输出的float格式图像在QT界面上显示,所以不能直接用Opencv中的CV_32FC1来显示。 目前版本QImage支持的图像格式如下图: 因此,选用QImage中的Format_Grayscale16格式来显示cuda运算后输出的float格式图像,将float格式转
阅读全文
摘要:cv::Mat转QImage(拷贝转换) QImage cvMat2QImage(const cv::Mat& mat) { if (mat.empty()) { return QImage(); } QImage image; switch (mat.type()) { case CV_8UC1:
阅读全文
摘要:一、判断Mat是否为空 if(img.empty())return -1; //是否加载成功 if(!img.data)return -1;//判断是否有数据 二、判断QImage、QPixmap是否为空 if(m_currentImage.isNull()) return; 三、QString判断
阅读全文
摘要:之前文章有遍历像素方法之一 forEach的使用方法 https://www.cnblogs.com/zzzsj/p/14609093.html 在做图像LUT时,需要对灰度图进行像素替换,最开始尝试了forEach方法进行访问,需要注意的是: //访问RGB图像时,需要进行的typedef: ty
阅读全文
摘要:OpenCV中使用forEach进行并行像素访问 在本教程中,我们将比较Mat类的forEach方法的性能和访问和转换OpenCV中像素值的其他方式。 我们将展示如何使用at方法甚至高效地使用指针算法,forEach比使用at方法快得多。 OpenCV中有隐藏的宝石,有时不是很知名。 其中一个隐藏的
阅读全文
摘要:提到LUT,很多人可能都会觉得这是一个很专业很高深的词汇,LUT其实就是Lookup Table(颜色查找表)的缩写,简单点儿理解就是:通过LUT,你可以将一组RGB值输出为另一组RGB值,从而改变画面的曝光与色彩。用一个最简单的模型帮助大家理解就是: 如果我们规定: 当原始R值为0时,输出R值为5
阅读全文
摘要:现在有一张16bit深度的图像,如果不使用PS或者其他工具的话,是很难直接获取到图像里储存的信息的。如下。 直接在Window里打开一张16位tif格式的图片 如果能将16位转换成8位的话,就能正常显示了。 原理 一张16位的图像,意思是一张图像的每个像素点的像素值都由16位的二进制数表示,每个像素
阅读全文
摘要:一、What is vector? vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vec
阅读全文
摘要:前 言 opencv中很多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分配变量,有的数据结构也会因为图像文件格式的关系而给予适当的变量,因此需要知道它们声明的空间大小来配置适当的变量。一 般标准的图片,为RGB格式它们的大小为8bits格式,范围为0~255,对一个int空间的类型
阅读全文
摘要:Qt5 中 QImage 转 OpenCV Mat 格式函数。 cv::Mat ImageMark::QImage2Mat(const QImage& image) { switch(image.format()) { // 8-bit, 4 channel case QImage::Format_
阅读全文
摘要:OpenCV cv::Mat 转 QImage 函数,原来的版本会发生转换后失色的问题。 //格式转换: cv::Mat 转 QImage QImage ImageMark::Mat2QImage(const cv::Mat &mat) { switch (mat.type()) { // 8-bi
阅读全文