图像匀光匀色

这篇具有很好参考价值的文章主要介绍了图像匀光匀色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
    // 定义图像路径
    String img_path1 = "image1.jpg";
    String img_path2 = "image2.jpg";

    // 读取图像
    Mat img1 = imread(img_path1);
    Mat img2 = imread(img_path2);

    // 图像分离
    vector<Mat> bgr1, bgr2;
    split(img1, bgr1);
    split(img2, bgr2);

    // 计算每个通道的平均值
    double mean_b1 = mean(bgr1[0])[0];
    double mean_g1 = mean(bgr1[1])[0];
    double mean_r1 = mean(bgr1[2])[0];
    double mean_b2 = mean(bgr2[0])[0];
    double mean_g2 = mean(bgr2[1])[0];
    double mean_r2 = mean(bgr2[2])[0];

    // 计算增益系数
    double kb = (mean_g1 + mean_g2) / (mean_b1 + mean_b2);
    double kr = (mean_g1 + mean_g2) / (mean_r1 + mean_r2);

    // 调整每个通道的增益
    Mat b_adjusted1 = bgr1[0] * kb;
    Mat r_adjusted1 = bgr1[2] * kr;
    Mat b_adjusted2 = bgr2[0] * kb;
    Mat r_adjusted2 = bgr2[2] * kr;

    // 合并通道
    vector<Mat> channels_adjusted1 = {b_adjusted1, bgr1[1], r_adjusted1};
    vector<Mat> channels_adjusted2 = {b_adjusted2, bgr2[1], r_adjusted2};
    Mat img_adjusted1, img_adjusted2;
    merge(channels_adjusted1, img_adjusted1);
    merge(channels_adjusted2, img_adjusted2);

    // 显示调整后的图像
    imshow("Image 1 Adjusted", img_adjusted1);
    imshow("Image 2 Adjusted", img_adjusted2);
    waitKey(0);
    return 0;
}
 文章来源地址https://www.toymoban.com/news/detail-401998.html

到了这里,关于图像匀光匀色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV 3详细配置及“无法打开包括文件: opencv2/opencv.hpp”的解决方法

    在进行计算机视觉和图像处理项目开发时,OpenCV是一个非常强大且广泛使用的开源库。本文将详细介绍如何配置OpenCV 3,并提供解决无法打开包括文件“opencv2/opencv.hpp”的方法。 以下是在Windows操作系统上配置OpenCV 3的步骤: 步骤1:下载OpenCV 3 首先,前往OpenCV的官方网站(h

    2024年02月01日
    浏览(37)
  • fatal error: opencv2/opencv.hpp: No such file or directory

    这是因为opencv头文件的路径中多了一个opencv4的文件夹:/usr/include/opencv4/opencv2 可以将opencv2文件夹链接到include文件夹下

    2024年02月11日
    浏览(45)
  • VScode中opencv头文件报错:cannot open source file “opencv2/highgui.hpp“

    原因在于没有配置好头文件的路径。 解决方法:找到头文件的路径,windows中一般是xxx/opencv/build/include/,这里面就包含了opencv和opencv2文件夹,里面就是头文件。在VScode中按Ctrl+Shift+P输入configuration在c_cpp_properties.json中includePath字段中添加找到的路径即可。

    2024年02月07日
    浏览(35)
  • 【OpenCV4】fatal error: opencv2/core.hpp: No such file or directory 解决方法

    Mac 系统 VScode OpenCV 4.5.4 在运行代码的时候出现报错 检查 c_cpp_properties.json , launch.json , tasks.json 这 3 个文件,参考: https://blog.csdn.net/qq_42067550/article/details/122634801?spm=1001.2014.3001.5502 查看 pkg-config 的设置 检查 vscode 工作区设置 在终端输入: 的到: 随便打开一个 访达 窗口,

    2023年04月08日
    浏览(42)
  • fatal error: opencv2/opencv_modules.hpp: No such file or directory(linux系统,opencv4)

    目的:在linux安装配置opencv2,出现了很多问题。总结一下。 1安装过程: 1)下载opencv 和opencv_contrib 其中my_working_directory为下载opencv的目录。因为需要第三方opencv_contrib库,因此下载。 2)编译opencv 和opencv_contrib 将opencv-contrib模块移入opencv目录下。 在上述目录中,创建bui

    2024年02月16日
    浏览(47)
  • Ubuntu 18.04 在安装OpenCV4.6.0时遇到“opencv2/gapi.hpp: No such file or directory“ 解决方法

    问题: 在对OpenCV4.6.0在安装过程中进行make编译时,遇到了 \\\"opencv2/gapi.hpp: No such file or directory\\\" 问题,引起这个问题的原因是因为在 /opencv4.6.0/samples/cpp/CMakelists.txt 文件中没有添加 opencv_gapi 指令,就导致了在编译过程中编译器找不到这个文件便会报错。如下图所示为具体报错提

    2024年02月13日
    浏览(40)
  • fatal error: opencv/cv.h: 没有那个文件或目录 错误;fatal error: opencv2/contrib/contrib.hpp: 没有那个文件或目录,opencv多版本

    1,替换 将各文件中的 #include opencv/cv.h替换为 #include opencv2/opencv.hpp即可 2,noetic自带的是opencv4 另外,ORB SLAM要求OpenCV 3.0,noetic自带的是opencv4,编译仍会失败 3,fatal error: opencv2/contrib/contrib.hpp: 没有那个文件或目录 opencv3中已经没有了contrib这个模块,特别指出不是编译opencv_contrib的

    2023年04月08日
    浏览(39)
  • OpenCV2之简单处理视频

    OpenCV2 https://www.geeksforgeeks.org/opencv-python-tutorial/ 视频采集 视频处理(处理帧+加文字)

    2024年04月22日
    浏览(46)
  • 【opencv】无法打开源文件opencv.hpp | bug记录

    今天这个bug其实比较搞笑: 那就是我们的VS软件没有识别到安装的库。肯定是下面三个环节哪里出错了: 1)项目属性里的包含目录(include) 2)项目属性里的库目录(lib) 3)项目属性里的附加依赖项(opencv_world470d.lib 它在库目录里 可能会因为版本不同而不同) 它们的位置分别在

    2024年02月08日
    浏览(41)
  • c++命名空间和include C++ #include<string> 和 using std::string

    1、C++中的命名空间namespace_51CTO博客_c++中的命名空间   2、 C++ #includestring 和 using std::string_yang20141109的博客-CSDN博客 //不光要加头文件,和C语言不同 #include utils/Errors.h //还要加using using android::status_t; using android::INVALID_OPERATION; using android::NO_ERROR; using android::BAD_VALUE; 3、c和c++的差

    2023年04月20日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包