美文网首页opencv
图像操作(像素)

图像操作(像素)

作者: wwda | 来源:发表于2019-10-01 10:44 被阅读0次

知识点

获取像素点:
Mat.at<Vec3b>(row,col) --三通道//获取像素点列表由bgr三个元素组成
Mat.at<uchar>(row,col)--单通道//获取像素点值
不同通道数量组成的图像像素点值的获取有所差异

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main() {
    Mat src, gray_src;
    src = imread("F:/test.jpg");
    imshow("raw image", src);
    cvtColor(src, gray_src, CV_BGR2GRAY);
    imshow("gray image",gray_src);

    //获取图像的像素
    Mat dst;
    dst.create(src.size(), src.type());
    int height = src.rows;
    int width = src.cols;
    int ch = src.channels();
//实现色反
    for (int row = 0; row < height; row++) {
        for (int col = 0; col < width; col++) {
            //单通道
            if (ch == 1) {
                int gray = gray_src.at<uchar>(row, col);
                gray_src.at<uchar>(row, col) = 255 - gray;
            }
            //三通道
            if (ch == 3) {
                /*
                [b,g,r][b,g,r][b,g,r]
                [b,g,r][b,g,r][b,g,r]
                [b,g,r][b,g,r][b,g,r]
                像素点的三个通道值类似数组存储
                指针的使用[]的使用
                Vec3b---vector 3 B
                动态数组三个元素,描述BGR颜色的类型
                */
                int b = src.at<Vec3b>(row, col)[0];
                int g = src.at<Vec3b>(row, col)[1];
                int r = src.at<Vec3b>(row, col)[2];
                dst.at<Vec3b>(row, col)[0] = 255 - b;
                dst.at<Vec3b>(row, col)[1] = 255 - g;
                dst.at<Vec3b>(row, col)[2] = 255 - r;
            }
        }
    }
    imshow("dst image", dst);
    waitKey(0);
    return 0;
}

相关文章

  • 图像处理

    第三章 图像处理 1.点操作 输出图像的像素值仅仅由输入图像的像素值决定。 1.1 像素变换 ...

  • 图像操作(像素)

    知识点 获取像素点:Mat.at(row,col) --三通道//获取像素点列表由bgr三个元素组成...

  • 小强学Python+OpenCV之-1.2图像基础

    目标 学完本节,我们将理解: 图像的基本元素是像素,什么是像素。 图像的坐标系统是怎样的。 操作像素的RGB值 通...

  • 1.6 openCV-python 图像的基础操作

    图像的基础操作 获取像素值并修改 获取图像的属性 图像的ROI() 图像通道的拆分与合并

  • 第二章 图像的点运算

    图像的点运算主要用于改变一副图像的灰度分布范围。操作对象是单个像素值,输出像素值只与输入像素值有关。 灰度直方图 ...

  • 着色器图像处理(亮度/对比度/反像)

    基于固定基图像的图像混合操作:针对图像各像素与常量值之间的混合操作 图像的基本属性。首先是亮度,也称灰度,它是大 ...

  • 图像像素操作中X/Y & rows/cols

    图像操作中经常需要遍历像素点以及再图像指定位置进行操作的需求,那就涉及到像素点的下标索引,横纵坐标以及宽高经常出错...

  • Opencv-Python学习笔记九——图像阈值threshol

    图像阈值操作 图像阈值操作目的是从灰度图像中分离出目标区域和背景区域 图像的二值化就是将图像上的像素点的灰度值设置...

  • 图像处理基本知识点

    图像像素操作 集合运算,加减乘除 逻辑运算,与或非取反 像素读写 通道混合与调整 对比度与亮度调整 图像几何变换 ...

  • OpenGL学习之路(6.0) 基础纹理

    原始图像数据 .像素包装图像存储空间 = 图像的⾼高度 * 图像宽度 * 每个像素的字节数 认识函数 像素存储方式...

网友评论

    本文标题:图像操作(像素)

    本文链接:https://www.haomeiwen.com/subject/dxjkpctx.html