OpenCV 改变图片颜色 C++
将RGB颜色空间转换到Lab,修改一幅图像的颜色;
/*
* color_transfer.cpp
*
* Created on: May 21, 2018
* Author: cui
*/
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc.hpp>
using namespace cv;
using namespace std;
int main( int argc, char *argv[] )
{
Mat src, tar;
src = imread( argv[1] );
if( src.empty() ){
cout << "Couldn't load image" << endl;
return -1;
}
tar = imread( argv[2] );
if( tar.empty() ){
cout << "Couldn't load image" << endl;
return -1;
}
//变换到Lab和CV_32FC1
Mat src_lab, tar_lab;
cvtColor( src, src_lab, COLOR_BGR2Lab );
cvtColor( tar, tar_lab, COLOR_BGR2Lab );
src_lab.convertTo( src_lab, CV_32FC1);
tar_lab.convertTo( tar_lab, CV_32FC1);
//为每幅图像找到每个通道的标准值和std值
Mat mean_src, mean_tar, stdd_src, stdd_tar;
meanStdDev( src_lab, mean_src, stdd_src );
meanStdDev( tar_lab, mean_tar, stdd_tar );
//拆分成独立的通道
vector<Mat> src_chan, tar_chan;
split( src_lab, src_chan );
split( tar_lab, tar_chan );
//为每个通道计算颜色分布
for( int i = 0; i < 3; i++ ){
tar_chan[i] -= mean_tar.at<double>(i);
tar_chan[i] *= (stdd_src.at<double>(i) /stdd_src.at<double>(i) );
tar_chan[i] += mean_src.at<double>(i);
cout << "mean_tar[" << i << "]: " << mean_tar.at<double>(i) << endl;
cout << "stdd_src.at<double>(" << i << "): " << stdd_src.at<double>(i) << endl;
cout << "(stdd_src.at<double>(i) /stdd_src.at<double>(i) )" <<
(stdd_src.at<double>(i) /stdd_src.at<double>(i) ) << endl;
}
//合并通道,转换到CV_8UC1的每个通道,并转换到BGR
Mat output;
merge( tar_chan, output );
output.convertTo( output, CV_8UC1 );
cvtColor( output, output, COLOR_Lab2BGR );
namedWindow( "Source Image", WINDOW_AUTOSIZE );
imshow("Source Image", src);
namedWindow( "Target Image", WINDOW_AUTOSIZE );
imshow("Target Image", tar);
namedWindow( "Result Image", WINDOW_AUTOSIZE );
imshow("Result Image", output);
imwrite("result.jpg", output);
waitKey(0);
return 0;
}
结果
OpenCV 改变图片颜色 C++相关推荐
- OpenCV for Python之改变图片颜色
OpenCV for Python之改变图片颜色 1.环境 2 直接修改通道值 3.与.或.非.异或操作 Opencv4 官方文档 : https://docs.opencv.org/4.2.0/ O ...
- 使用asp.net改变图片颜色
最近奇葩经理提出了奇葩的需求,要能在网站上改变图片的颜色,比如灰色的变成彩色,彩色的变成灰色,尼玛楼主的感受你们不懂!于是有了下面的代码... 用法:调用update_pixelColor方法并传参数 ...
- iOS 改变图片颜色
在做项目的时候碰到了一个需求,把app的主题颜色改变成另外一种颜色,由于没有给出新的素材图片,需要把现有图片的颜色改变一下.下面是改变图片颜色的方法(一般对于单一颜色的图片) imageWithRen ...
- html怎么改变图片亮度,纯干货,前端学者的福音!如何使用css滤镜改变图片颜色...
原标题:纯干货,前端学者的福音!如何使用css滤镜改变图片颜色 说到对图片进行处理,我们经常会想到PS,美图秀秀这类的图像处理工具.作为前端,全栈开发者,我们经常会需要处理一些特效,例如根据不同的状态 ...
- 图片使用css3滤镜改变图片颜色
图片使用css3滤镜改变图片颜色 使用css3滤镜改变图片的颜色 代码如下 使用css3滤镜改变图片的颜色 我们在开发页面的时候,会遇到同一张图片滑过或点击的时候改变图片背景或颜色,一般情况下UI设计 ...
- Android 使用ColorMatrix改变图片颜色
ColorMatrix的颜色矩阵介绍 颜色矩阵M是一个5*4的矩阵,在Android中,颜色矩阵M是以一维数组m=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t]的方 ...
- 如何用OpenCV改变图片的大小?
前言 改变图片的大小(resize)是一项很有用的基本技能,它能让图片拥有我们想要的大小.比如在初学阶段,我们在实践时所用的图片的太大,屏幕上显示时观感不好,可以利用这一项技能把图片变小. 具体操作 ...
- 利用CSS改变图片颜色的100种方法!
(给前端大全加星标,提升前端技能) 来源: 前端指南 前言 "说到对图片进行处理,我们经常会想到PhotoShop这类的图像处理工具.作为前端开发者,我们经常会需要处理一些特效,例如根据不同 ...
- html图片颜色变深,利用CSS改变图片颜色的100种方法!
前言 "说到对图片进行处理,我们经常会想到PhotoShop这类的图像处理工具.作为前端开发者,我们经常会需要处理一些特效,例如根据不同的状态,让图标显示不同的颜色.或者是hover的时候, ...
最新文章
- 解决虚拟机vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
- 库克笑了,说要给股东多分红:换了M1后Mac销售额增长70%,iPhone也增长66%
- Protobuf windows
- 关于org.apache.lucene.queryParser.ParseException: Encountered 解决方法
- 图片被遮住一部分能复原吗_真的准确吗?就是这张图片自称能检测出你的眼睛近视不近视...
- 代码审计之Catfish CMS v4.5.7后台作者权限越权两枚+存储型XSS一枚
- How to Get Name of Months in ABAP/4
- pycharm专业版(window)安装
- 【CSS 】动画animation
- google 图表(chart)
- 洗礼灵魂,修炼python(42)--巩固篇—type内置函数与类的千丝万缕关系
- 题解:SPOJ1026 Favorite Dice
- 第 1 章 Readme
- Nokia Booklet 3G试用小记
- 如何清除BIOS密码
- andriod搭建自己的轮询框架
- 【基金量化研究系列】大类资产配置研究(六)——多资产风险平价策略
- RPG游戏中造过的BUG
- 初识Vue——八皇后小游戏
- 3D游戏-作业三-空间与运动