zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    Linux系统编程——特殊进程之僵尸进程
    怎样让你的安卓手机瞬间变Firefox os 畅玩firefox os 应用
    新手学JavaScript都要学什么?
    《解读window核心编程》 之 注冊表
    指针知识梳理10-指向数组的指针
    简易迷宫游戏
    CC++控制台颜色设置类
    实用的开放平台整理
    java 集合交并补
    PHP 标准库 SPL 之数据结构栈(SplStack)简单实践
  • 原文地址:https://www.cnblogs.com/paladinzxl/p/9039206.html
Copyright © 2011-2022 走看看