当前位置:   article > 正文

【OpenCV】获取图像宽度、高度、通道数、深度、类型_java opencv mat获取图片高度

java opencv mat获取图片高度

1 前言

        本文将介绍如何通过一个Mat对象,获取图像个各种信息(cols,rows,channels,depth,type),以及图像深度、类型问题。

2 代码及相关知识

  1. #include "iostream"
  2. #include "opencv2/opencv.hpp"
  3. using namespace std;
  4. using namespace cv;
  5. int main(int argc,char *argv)
  6. {
  7. Mat src = imread("C:/Users/Administrator/Desktop/Zooey.png",IMREAD_COLOR);
  8. if (src.empty())
  9. {
  10. cout << "could not find image file" << endl;
  11. return -1;
  12. }
  13. namedWindow("input", WINDOW_AUTOSIZE);
  14. imshow("input", src);
  15. //获取图像宽度、高度、以及通道数。
  16. int width = src.cols;
  17. int height = src.rows;
  18. int dim = src.channels();
  19. //获取图像深度与类型。
  20. int d = src.depth();
  21. int t = src.type();
  22. //注意:下面d和t的输出都是枚举值对应的数字。深度为:CV_8U(0),类型为:CV_8UC3(16)
  23. printf("宽度:%d,高度:%d,通道数:%d,深度:%d,类型:%d\n", width, height, dim, d, t);
  24. waitKey(0);
  25. destroyAllWindows();
  26. return 0;
  27. }

上述代码会显示一张图片,并将图片的相关信息打印出来。

  • src.cols; 获取图像宽度,即图像列数。
  • src.rows; 获取图像高度,即图像行数。
  • src.channels(); 获取图像通道数。
  • src.depth(); 获取图像深度。
  • src.type(); 获取图像类型。

后两个需要注意一下,它们是枚举值,打印时会打印其对应的数字。下面说下这些枚举值,附图:

图中,上部分是图像深度对应的枚举值,下部分是图像类型对应的枚举值。

图像深度值是多少(注意深度值和深度不一样,这里图像24表示8位三通道,共24位。后面对深度有解释) ,我们可以右击图片属性,在详细信息中查看。如下:

我们可以看到图像类型实际上就是图像深度枚举值+Cx的格式,而C代表通道channel,C1即单通道,C2即双通道,这样来看就很好理解其含义了。比如CV_8UC3,即8位无符号3通道类型。

        关于这些枚举值对应的数字,我只找到了图像深度的,图像类型本人没有找到,但靠cout<<CV_8UC1;这种方式可以将其对应的数值打印出来。图像深度对应的数值只需要用键盘随便敲出任意一个,然后右键点击转到定义即可。如图:

PS:图像深度是指存储每个像素所用的位数,它也是用来度量图像的色彩分辨率的。因此,图像深度值跟通道数也有关系,3通道一般是彩色图像,单通道则是灰度图像,CV_8UC3的彩色图像(一个像素有8x3位),图像深度是24,CV_8UC1的灰色图像(一个像素有8x1位),图像深度便是8。因为这里一个通道有8位,所以只有一个通道的灰度图像是8,而有三个通道的彩色图像便是24。

PS(2021-5-23):

  • Mat<uchar>---------CV_8U
  • Mat<char>-----------CV_8S
  • Mat<short>---------CV_16S
  • Mat<ushort>--------CV_16U
  • Mat<int>-----------CV_32S
  • Mat<float>----------CV_32F
  • Mat<double>--------CV_64F

3 结束语

        主要介绍了图像的几个基本属性,图像深度这些要搞懂。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/595098
推荐阅读
相关标签
  

闽ICP备14008679号