OpenCV——颜色运算
#ifndef PS_ALGORITHM_H_INCLUDED
#define PS_ALGORITHM_H_INCLUDED #include <iostream>
#include <string>
#include "cv.h"
#include "highgui.h"
#include "cxmat.hpp"
#include "cxcore.hpp" using namespace std;
using namespace cv; void Show_Image(Mat&, const string &); void Save_Image(Mat&, const string &); #endif // PS_ALGORITHM_H_INCLUDED
/*
This program will do the computation
on three channels respectively, and generate
the "cast" effect. */ #include "PS_Algorithm.h" using namespace std;
using namespace cv; int main(void)
{ string Img_name("4.jpg"); Mat Image_in;
Image_in=imread(Img_name);
Show_Image(Image_in, Img_name); // split the three channels
Mat Image_2(Image_in.size(), CV_32FC3);
Image_in.convertTo( Image_2, CV_32FC3); Mat r(Image_in.rows, Image_in.cols, CV_32FC1);
Mat g(Image_in.rows, Image_in.cols, CV_32FC1);
Mat b(Image_in.rows, Image_in.cols, CV_32FC1);
Mat out[]={b, g, r}; split(Image_2, out); b=out[0]/255;
g=out[1]/255;
r=out[2]/255; // generate the new image
Mat Image_new(Image_in.size(), CV_32FC3);
Image_in.convertTo( Image_new, CV_32FC3); // generate new channels
Mat r_new(Image_in.rows, Image_in.cols, CV_32FC1);
Mat g_new(Image_in.rows, Image_in.cols, CV_32FC1);
Mat b_new(Image_in.rows, Image_in.cols, CV_32FC1); float alpha;
alpha=0.15;
// cv::divide(r,(b+g+0.001),r_new, alpha);
// cv::divide(g,(b+r+0.001),g_new, alpha);
// cv::divide(b,(r+g+0.001),b_new, alpha); r_new=r*alpha/(b+g+0.001);
g_new=g*alpha/(r+b+0.001);
b_new=b*alpha/(r+g+0.001); Mat out_new[]={b_new, g_new, r_new};
cv::merge(out_new, 3, Image_new);
Show_Image(Image_new, "Img_out");
waitKey(); cout<<"All is well \n"; }
</pre><pre name="code" class="cpp">#include "PS_Algorithm.h"
#include <iostream>
#include <string> using namespace std;
using namespace cv; void Show_Image(Mat& Image, const string& str)
{
namedWindow(str.c_str(),CV_WINDOW_AUTOSIZE);
imshow(str.c_str(), Image);
// waitKey();
// cvDestroyWindow(str.c_str());
}
原图:
效果图:
OpenCV——颜色运算的更多相关文章
- OpenCV——颜色运算(二)
#ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <iostream> #include & ...
- opencv::卷积运算函数filter2D()
opencv::卷积运算函数filter2D() 使用掩模板矩阵(kernel)计算每个像素值 与原图相比,没有黑边 int main(int argc, char** argv) { Mat src ...
- opencv颜色识别代码分享
android 平台 opencv 实现颜色识别代码:http://www.eyesourcecode.com/thread-40682-1-1.htmlopencv的颜色识别简单实现的代码:http ...
- OpenCV颜色转换和皮肤检测
本笔记重点记录OpenCV中的颜色转换和利用色彩空间的特性进行皮肤检测 颜色转换 实现原理 之所以要引入色调/饱和度/亮度的色彩空间概念,是因为人们喜欢凭直觉分辨各种颜色,而它与这种方式吻合.实际上, ...
- PS 色调——颜色运算
通过对三个通道定义不同的运算,使图像的色调改变,进而生成不同色彩的图像. clc; clear all; Image=imread('4.jpg'); Image=double(Image); R=I ...
- Opencv Mat运算(转)
一.矩阵Mat I,img,I1,I2,dst,A,B; double k,alpha; Scalar s; //注意Mat的行列号是从0开始的 //定义矩阵a,b,c Mat a,b,c; //生成 ...
- OpenCV——颜色缩减、计时函数、访问像素
//颜色空间缩减 //src:源图片 //dst:目标图片 //divideWith:缩减宽度 void ColorSpaceReduction(Mat src,int divideWith,Mat& ...
- Opencv颜色识别与追踪
这是基于颜色识别的物体追踪 不废话 直接看代码 这是Opencv3的代码 //---------------------------------[头文件.命名空间包含部分]-------------- ...
- opencv颜色提取color filting
# -*- coding: utf-8 -* import numpy as np import cv2 cap = cv2.VideoCapture(0) while True: _ , frame ...
随机推荐
- NewSQL数据库VoltDB特性简介
VoltDB是一个革命性的新型数据库产品,被称作NewSQL数据库.它基于H-Store,号称比当前数据库产品的吞吐量高45倍,同时又具有很高的扩展性.它的特性主要有以下几点: Ø 高吞吐.低延迟: ...
- Android平移动画
Android平移动画 核心方法 public void startAnimation(Animation animation) 执行动画,参数可以是各种动画的对象,Animation的多态,也可以是 ...
- python在windows下使用setuptools安装egg文件
最近和同学做个东西,需要安装python的第三方函数库,看了网上的介绍,很是麻烦,这是我实践总结出来的,希望对大家有用. 以安装第三方库networkx 为例,其余函数库都是一个套路,看完就会滴. 1 ...
- SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系
ORM,全称是(Object Relational Mapping),即对象关系映射.ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据 ...
- iOS中 通知中心Text (实例)
指定根视图 self.window.rootViewController = [RootViewController new]; 方法实现: #import "RootViewControl ...
- 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序
1 什么是服务器 Weblogic中服务器分为两种,一种是受管服务器,另外一种是管理服务器. Weblogic课程(Weblogic是Oracle公司的,最开始的是BEA公司的) 一 系统管理 ...
- Google的两种广告推广方式
1搜索关键字广告推送:AdWords: 覆盖广泛:在全球最大的搜索和网络平台上进行推广. 定位精准:锁定目标客户群体,让潜在客户轻松找上门. 成本可控:仅当用户点击广告时,您才支付费用. 2.网站内容 ...
- Linux驱动基础:msm平台,modem等framework加载
msm平台,AP和CP封装在一起,公用一块内存.所以AP需要负责把整个modem, TZ , rpm等binary拷贝到内存中以供modem等subsystem去运行.那AP这边是怎么分配这些内存,又 ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十一)
之前的10篇内容主要实现了选手从起点移动至终点的动作,比较随机的模拟了选手的速度变化,另外完成了选手到达终点时该做的事情. 接下来的几篇中我们进一步完善SpeedBoy Lite项目,使它真正成为一个 ...
- 网站开发进阶(三十)HTML5--本地存储Web Storage
HTML5--本地存储Web Storage Web Storage功能,顾名思义,就是在Web上针对客户端本地储存数据的功能,具体来说Web Storage分为两种: sessionStorage: ...