• opencv(2)- 处理像素值


      opencv中使用Mat数据类型表示图像,这是类似int、float等传统类型的一种opencv中定义的数据类型。

      opencv常见的数据类型:

        point:代表二维点,用于图像坐标点。如point(20, 80).

        scalar:表示4元素标量,常用于RGB颜色值,一般第四个参数用不到。

      像素是由颜色空间或通道数与数据类型来描述的。

      opencv像素的数据类型由表达式来表述:CV_ABCD.

      A:每个像素占多少位。

      B:是否有符号。

      C:类型前置码。

      D:通道数目。

      如CV_8UC3表示每个像素8位,无符号,因为无符号所以使用Char表示像素,每个像素3个通道。

      RGB三原色则使用CV_8UC3表示。

      

      对于一幅彩色图像,如lena.jpg,通过默认Mat image = imread("lena.jpg")读取到的即为RGB的彩色图像。

      彩色图像可通过Mat的方法at获得,如获取y行x列的像素值:image.at<Vec3b>(y, x)[c]。其中c为RGB的通道索引。

      对于一幅彩色图像来说,要对每一像素进行处理时,要按照宽、高、通道数的循环来处理像素,如:

    1 for(int y = 0; y < image.rows; y++)
    2     for(int x = 0; x < image.cols; x++)
    3         for(int c = 0; c < image.channels(); c++)
    4             new_images.at<Vec3b>(y, x)[c] = 0;

       注意:在处理像素点的时候,rows对应于图像的高,即point的y;cols对应于图像的宽,即point的x。

        而Mat.at(y, x)中的y对应于rows,x对应于cols。

  • 相关阅读:
    Cocos2dx-Android屏幕适配方案
    Cocos2dx-Mac下的环境配置
    Cocos2dx-C++和Lua数据通讯
    Cocos2dx-Lua与C++混合使用
    安装宝塔面板
    nginx配置ssl安全证书
    在nginx上运行spring
    spring在服务器上的启动和关闭jar包
    idea常用插件
    maven打包war
  • 原文地址:https://www.cnblogs.com/paladinzxl/p/9039206.html
Copyright © 2020-2023  润新知