• Opencv 图像增强和亮度调整<6>


    图像处理算子是带有一幅或多幅输入图像、产生一幅输出图像的函数。

    图像变换可分为以下两种:点算子(像素变换)邻域算子

    图像增强和亮度调整属于像素变换范畴常见变换方法是:g(i,j) = alpha cdot f(i,j) + eta

    其中 i 和 j属于行和列

    #define WIN_NAME "输出图像"
    Mat srcImage;
    Mat dstImage;
    int contrast = 20, bright = 20;
    void onChange(int, void*)
    {
     for (int i = 0; i < srcImage.rows; i++)
     {
      for (int j = 0; j < srcImage.cols; j++)
      {
       //也可以用for循环
       dstImage.at<Vec3b>(i, j)[0] = saturate_cast<uchar>(srcImage.at<Vec3b>(i, j)[0] * contrast*0.01 + bright);
       dstImage.at<Vec3b>(i, j)[1] = saturate_cast<uchar>(srcImage.at<Vec3b>(i, j)[1] * contrast*0.01 + bright);
       dstImage.at<Vec3b>(i, j)[2] = saturate_cast<uchar>(srcImage.at<Vec3b>(i, j)[2] * contrast*0.01 + bright);
      }
     }
    // srcImage.convertTo(dstImage, -1, 0.01, 20);
     imshow("原图", srcImage);
     imshow(WIN_NAME, dstImage);
    }
    void main()
    {
     srcImage = imread("E:\欣奕华\项目\OPENCV\ContrastBright\ConBrightness\1.jpg", 1);
     dstImage.create(srcImage.size(), srcImage.type());
     namedWindow(WIN_NAME, WINDOW_AUTOSIZE);
     createTrackbar("对比度", WIN_NAME, &contrast, 200, onChange, 0);
     createTrackbar("亮  度", WIN_NAME, &bright, 200, onChange, 0);
     onChange(contrast, 0);//回调函数初始化
     onChange(bright, 0);
     waitKey();
    }
  • 相关阅读:
    redis的两种安装方法
    http头部信息
    软件测试技术知识
    github使用
    3 python之基础概要
    2 Python之编程语言介绍及变量
    1 Python入门及计算机硬件知识
    Linux常用命令
    CMDB小练习
    CMDB和运维自动化
  • 原文地址:https://www.cnblogs.com/xingyuanzier/p/11624209.html
Copyright © 2020-2023  润新知