关闭

OpenCV 调整图像亮度以及对比度

标签: opencv
998人阅读 评论(0) 收藏 举报
分类:
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

const char* win_name = "load image";
const char* output = "contrast and brightness change";
const char* path = "C:/Users/Administrator/Desktop/1.jpg";

int main(int argc, char** argv)
{
    Mat src, dst;
    src = imread(path);
    if (src.empty())
    {
        cout << "could not load..." << endl;
        return -1;
    }
    //改变图像通道数
    //cvtColor(src, src, CV_BGR2GRAY);
    imshow(win_name, src);

    int height = src.rows;
    int width = src.cols;
    dst = Mat::zeros(src.size(), src.type());
    float alpha = 0.8;
    float beta = 30;
    for (int row = 0; row < height; row++)
    {
        for (int col = 0; col < width; col++)
        {
            if (src.channels() == 3)//判断图像是否为3通道
            {
                //获取像素值
                float b = src.at<Vec3b>(row, col)[0];//blue
                float g = src.at<Vec3b>(row, col)[1];//green
                float r = src.at<Vec3b>(row, col)[2];//red
                //操作像素值
                dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(b*alpha + beta);
                dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(g*alpha + beta);
                dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(r*alpha + beta);
            }
            else if (src.channels() == 1)//判断图像是否为1通道
            {
                float v = src.at<uchar>(row, col);//获取像素值
                dst.at<uchar>(row, col) = saturate_cast<uchar>(v*alpha + beta);//操作像素值
            }
        }

    }

    imshow(output, dst);

    waitKey(0);
    return 0;
}
0
0
查看评论

opencv学习(十)之调节图像亮度和对比度

在图像处理中,图像像素的值依赖于输入图像的值。可以通过对输入像素值进行数值运算已达到对图像处理的目的。以调节图像对比度和亮度为例,通过结合之前学过的图像像素访问和轨迹条等内容,对图像对比度和亮度进行调节。 以f(i,j)代表原像素值,g(i,j)为输出像素的值,α和β为两个参数,则可以通过以下公式...
  • keith_bb
  • keith_bb
  • 2016-11-21 21:28
  • 1800

用OpenCV实现Photoshop算法(五): 亮度对比度调整

用OpenCV C++ 实现Photoshop的亮度对比度调整的算法
  • c80486
  • c80486
  • 2016-09-11 18:04
  • 3756

opencv-图像对比度、亮度值调整

// 描述:包含程序所依赖的头文件 //---------------------------------------------------------------------------------------------- #include #include #include "...
  • hb707934728
  • hb707934728
  • 2016-07-19 09:40
  • 1966

opencv:图像对比度、亮度值调整(理论基础)

一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像。算子的一般形式如下: g(x)=h(f(x))或者g(x)=h(f0(x)……fn(x)) 图像亮度和对比度的调整操作,属于图像处理变换中一种——点操作。 点操作特点:仅仅根据输入像素值(有时加上某些全局信息或参...
  • qq_31935691
  • qq_31935691
  • 2017-05-11 23:43
  • 460

Opencv图像对比度和亮度的调整-滚动条

#include #include #include"stdio.h" using namespace std; using namespace cv; Mat srcImage, resultImage; int g_nContrast, g_nBright; const ...
  • qq_23880193
  • qq_23880193
  • 2015-08-30 21:12
  • 541

opencv学习(4)——图像亮度、对比度调整

#include "opencv2/imgcodecs.hpp" #include "opencv2/highgui/highgui.hpp" #include <iostream>using namespace cv;double alpha; ...
  • yanxiaopan
  • yanxiaopan
  • 2016-07-03 12:27
  • 1763

Opencv改变图像亮度和对比度以及优化

问题介绍 理论介绍 代码介绍 优化方式与实验结果 问题介绍图像处理中改变亮度和对比度是很基础的需求,算法也相对简单。博主的工作是要模拟待处理视频的不同光照下的效果。博主想到的方式就是 利用Opencv读取视频的每一帧,然后进行处理成不同亮度和对比度的图像,然后在写进去。理论介绍Opencv提供了...
  • u013139259
  • u013139259
  • 2016-08-07 22:12
  • 3299

opencv调整图像亮度和对比度

opencv调整图像亮度和对比度
  • alickr
  • alickr
  • 2016-05-28 00:03
  • 1839

opencv(c++)改变图像的对比度和亮度

参考: 1、https://docs.opencv.org/3.2.0/ 2、https://github.com/opencv/opencv/Changing the contrast and brightness of an image! 访问像素值 用零初始化一个矩阵 了解cv :: ...
  • wc781708249
  • wc781708249
  • 2017-11-05 11:13
  • 297

OpenCV图像亮度、对比度调节

#include "cv.h" #include "highgui.h" #include int ImageAdjust(IplImage *src,IplImage *dst, do...
  • Augusdi
  • Augusdi
  • 2013-04-28 23:03
  • 5694
    个人资料
    • 访问:15517次
    • 积分:378
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论