OpenCV:操作像素值

本文介绍了OpenCV中如何操作像素值,包括灰度图和彩色图的处理。OpenCV存储彩色图像的通道顺序为BGR,修改像素值可以使用指针实现或者利用cv::Mat的isContinuous方法判断数据是否连续,提高效率。通过迭代器进行像素遍历也是常见的操作方式。
摘要由CSDN通过智能技术生成
  1. at方法
    灰度图
    image.at<uchar>(i,j)
    彩色图
    image.at<cv::Vec3b>(j,i)[channel]
    OpenCV 存储通道数据的次序是蓝色、绿色和红色(因此通道0,1,2)
    修改:
image.at<cv::Vec3b>(j, i) = cv::Vec3b(255, 255, 255)

    void colorReduce(Mat& image,int div)
    {
        for(int i=0;i<image.rows;i++)
        {
            for(int j=0;j<image.cols;j++)
            {
                image.at<Vec3b>(i,j)[0]=image.at<Vec3b>(i,j)[0]/div*div+div/2;
                image.at<Vec3b>(i,j)[1]=image.at<Vec3b>(i,j)[1]/div*div+div/2;
                image.at<Vec3b>(i,j)[2]=image.at<Vec3b>(i,j)[2]/div*div+div/2;
            }
         }
    }
  1. 指针实现
    int nl = image.rows;//行
    //将3通道转为1个通道
    int nc = image.cols * image.channels();
    for (int j 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值