iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >OpenCV实现更改图片颜色功能
  • 473
分享到

OpenCV实现更改图片颜色功能

2024-04-02 19:04:59 473人浏览 独家记忆
摘要

原图效果: 更改颜色后效果: 直接上源码: #include <OpenCV2/opencv.hpp> #include <iOStream> #incl

原图效果:

更改颜色后效果:

直接上源码

#include <OpenCV2/opencv.hpp>
#include <iOStream>
#include <vector>
#include <cstdio>
#include <cstring>

using namespace cv;
using namespace std;

int main(int arGC, char const* argv[])
{
    Mat srcImg = imread("E:/img/kai.png", IMREAD_UNCHANGED); //-1不做任何改变
    Mat srcImg1 = imread("E:/img/kai.png", 0);   //0灰度
    Mat srcImg2 = imread("E:/img/kai.png", 1);  //1是color

    cout << srcImg.channels() << endl;
    cout << srcImg1.channels() << endl;
    cout << srcImg2.channels() << endl;
    
    imshow("-1", srcImg);
    imshow("0", srcImg1);
    imshow("1", srcImg2);

    //颜色有空间 RGB (1) RGBA(-1) 透明度  灰色空间(0)    
    //1、存储阶段的颜色值
    vector<Vec3D> colors;
    unsigned long index = 0;
    for (int i = 0; i < 6; ++i) {
        for (int j = 0; j < 6; ++j) {
            for (int k = 0; k < 6; ++k) {
                colors.push_back(Vec3d());
                colors[index][0] = i / 5.0 * 255;
                colors[index][1] = j / 5.0 * 255;
                colors[index][2] = k / 5.0 * 255;
                index++;
            }
        }
    }
    //2、更对对应的颜色值
    index = 0;
    Mat temp = srcImg.clone();
    while (index < colors.size()) {
        for (int r = 0; r < srcImg.rows; ++r) {
            for (int c = 0; c < srcImg.cols; ++c) {
                //获取像素点的颜色
                //c4b &pixel = srcImg.at<Vec4b>(r, c);  //4b和4d有区别的,b是uchar, d是double
                Vec4b &pixel_temp = temp.at<Vec4b>(r, c);
                //如果当前点的透明度为0
                if (pixel_temp[3] == 0) {
                    continue;
                } else {
                    for (int i = 0; i < 3; ++i) {
                        pixel_temp[i] = colors[index][i];
                    }
                }
            }     
        }
        //3、保存需要的图片
        char outImagePath[64] = {};
        sprintf_s(outImagePath, "E:/img/outImagePath/out_img_%.0f_%.0f_%.0f.png", colors[index][0], colors[index][1], colors[index][2]);
        imwrite(outImagePath, temp);
        index++;
    }   
    //waiTKEy(0);
    return 0;
}

到此这篇关于OpenCV实现更改图片颜色功能的文章就介绍到这了,更多相关OpenCV更改图片颜色内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: OpenCV实现更改图片颜色功能

本文链接: https://www.lsjlt.com/news/148785.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • OpenCV实现更改图片颜色功能
    原图效果: 更改颜色后效果: 直接上源码: #include <opencv2/opencv.hpp> #include <iostream> #incl...
    99+
    2022-11-13
  • 纯css如何实现更改图片颜色
    这篇文章主要介绍纯css如何实现更改图片颜色,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一...
    99+
    2023-06-08
  • 基于opencv实现视频中的颜色识别功能
    目录颜色识别的原理opencv中的颜色模型颜色识别的实现(c++)颜色识别的原理 opencv中的颜色模型 RGB RGB具有三个通道其,分别表示红色通道®,绿色通道(G),...
    99+
    2022-11-13
  • python+opencv实现文字颜色识别与标定功能
            最近接了一个比较简单的图像处理的单子,花了一点时间随便写了一下:  数据集客户没有是自...
    99+
    2022-11-12
  • JS中如何实现控制button颜色随点击更改功能
    这篇文章主要介绍了JS中如何实现控制button颜色随点击更改功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先上效果图:默认“今日”是选...
    99+
    2022-10-19
  • Python+OpenCV实现黑白老照片上色功能
    目录导语一、环境准备二、代码展示三、效果展示导语 我们都知道,有很多经典的老照片,受限于那个时代的技术,只能以黑白的形式传世。尽管黑白照片别有一番风味,但是彩色照片有时候能给人更强的...
    99+
    2023-02-15
    Python OpenCV黑白老照片上色 Python OpenCV照片上色 Python 照片上色
  • Python+OpenCV实现图片及视频中选定区域颜色识别
    近期,需要实现检测摄像头中指定坐标区域内的主体颜色,通过查阅大量相关的内容,最终实现代码及效果如下,具体的实现步骤在代码中都详细注释,代码还可以进一步优化,但提升有限。 主要实现过程...
    99+
    2022-11-11
  • JavaScript怎么实现单击按钮后更改背景颜色的功能
    本篇内容主要讲解“JavaScript怎么实现单击按钮后更改背景颜色的功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript怎么实现单击按钮后更...
    99+
    2022-10-19
  • OpenCV自定义色条如何实现灰度图上色功能
    这篇文章将为大家详细讲解有关OpenCV自定义色条如何实现灰度图上色功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。场景需求       Qt在进行2D图像显示时...
    99+
    2023-06-25
  • 如何在python中使用opencv实现一个颜色检测功能
    本文章向大家介绍如何在python中使用opencv实现一个颜色检测功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络...
    99+
    2023-06-06
  • Android利用Palette实现提取图片颜色
    目录前言创建Palette提取颜色文字颜色自动适配更多功能总结前言 Palette即调色板这个功能其实很早就发布了,Jetpack同样将这个功能也纳入其中,想要使用这个功能,需要先依...
    99+
    2022-11-13
  • OpenCv实现绘图功能
    本文实例为大家分享了OpenCv实现绘图功能的具体代码,供大家参考,具体内容如下 绘制一个图像在上面画线: import numpy as np import matplotli...
    99+
    2022-11-12
  • C++ opencv图像处理使用cvtColor实现颜色转换
    目录前言源码效果图代码颜色空间转换代码前言 在我们读取图像时通常会用到imread()函数,里面flags可以决定通道数,来得到我们想要的图像,比如: -1 按解码得到的方式读入图像...
    99+
    2022-11-13
  • Android怎么用Palette实现提取图片颜色
    本文小编为大家详细介绍“Android怎么用Palette实现提取图片颜色”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么用Palette实现提取图片颜色”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • 基于OpenCV自定义色条实现灰度图上色功能代码
    场景需求        Qt在进行2D图像显示时,有很方便的色条接口,可以让灰度图基于其设计的色条进行上色,比如设置1为红色,0.55为黄色,0.45为绿色,0为蓝色,那么灰度图就会...
    99+
    2022-11-12
  • html5如何利用canvas实现颜色容差抠图功能
    这篇文章主要介绍了html5如何利用canvas实现颜色容差抠图功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。利用canvas的getImageData,我们可以获取到一...
    99+
    2023-06-09
  • android中实现背景图片颜色渐变方法
    常用,记录一下。 效果图: 首先新建xml文件  bg_gradient.xml 代码如下: <?xml version="1.0" encod...
    99+
    2022-06-06
    方法 图片 背景图 Android
  • OpenCV利用K-means实现根据颜色进行图像分割
    目录K-means算法分割应用:分类实例 K-means算法分割 K-means是一种经典的无监督聚类算法---不需要人工干预。 算法原理: (1)随机选择两个中心点; ...
    99+
    2022-11-13
    OpenCV K-means图像分割 OpenCV 图像分割 OpenCV K-means
  • vue使用element实现上传图片和修改图片功能
    目录前言一、应用场景1.上传图片并进行放大预览2.图片上传代码二、修改已经上传的图片,并展示到图片列表中1.效果展示(先展示原来的图片,再上传新图片,也可删除原来的图片)2.编辑代码...
    99+
    2022-11-13
  • vue.js如何实现图片上传预览及图片更换功能
    这篇文章将为大家详细讲解有关vue.js如何实现图片上传预览及图片更换功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:样式以及效果图一并展示1.HTML<...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作