OpenCV——老照片效果

// define head function
#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 &);

#endif // PS_ALGORITHM_H_INCLUDED

/*
This program will generate
 "Old Picture" effect.

*/

#include "PS_Algorithm.h"
#include <time.h>

using namespace std;
using namespace cv;

int main(void)
{
    string Img_name("9.jpg");
    Mat Image_in;
    Image_in=imread(Img_name);
    Show_Image(Image_in, Img_name);
    Mat Image_out(Image_in.size(), CV_32FC3);
    Image_in.convertTo(Image_out, CV_32FC3);

    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);

    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);

    r_new=0.393*r+0.769*g+0.189*b;
    g_new=0.349*r+0.686*g+0.168*b;
    b_new=0.272*r+0.534*g+0.131*b;

    Mat rgb[]={b_new, g_new, r_new};

    merge(rgb,3,Image_out);

    Image_out=Image_out/255;

    Show_Image(Image_out, "out.jpg");

    imwrite("out.jpg", Image_out*255);

    waitKey();
    cout<<"All is well."<<endl;

}

#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);

}

原图

效果图

时间: 2024-07-29 10:02:12

OpenCV——老照片效果的相关文章

PS 色调——老照片效果

这就是通过调色使照片显得发黄. R_new=0.393*R+0.769*G+0.189*B; G_new=0.349*R+0.686*G+0.168*B; B_new=0.272*R+0.534*G+0.131*B; clc; clear all; Image=imread('9.jpg'); Image=double(Image); Image_new=Image; Image_new(:,:,1)=0.393*Image(:,:,1)+0.769*Image(:,:,2)+0.189*Ima

opencv边缘效果比较

边缘方法有: sobel, scharr, laplacisan, canny 原图: sobel vertical filter 垂直滤波 sobel horizonal filter水平滤波 laplacian 中值去躁后拉普拉斯滤波 laplacian只输出二值化边缘 canny

基于OpenCV立体视觉标定和校正

这几天学习双目视觉标定,分别使用了两种工具:OpenCV和Matlab.Matlab的效果非常稳定,但是一开始OpenCV的效果很糟糕,要不是出现中断就是标定出来的结果数值很大.经过了几天的不断调试和更改,终于把OpenCV的立体视觉标定和校正的程序写出来了.立体标定时计算空间上的两台摄像机几何关系的过程,立体校正则是对个体图像进行纠正,保证这些图像可以从平面对准的两幅图像获得.程序的框架如下: 1.读取左右相机图片序列 双目相机的图片序列放在Demon的路径下,左右相机的图像的名字分别存放在两

利用颜色矩阵实现图片效果

在上一篇文章中,我们学习利用色光三原色调整图片颜色的方法.这一篇文章的代码将在上一篇的基础上继续书写.如果你还没读过,可以点击下面的链接: http://www.cnblogs.com/fuly550871915/p/4883422.html 在本篇中,我们继续学习图片颜色的变换方法,利用颜色矩阵将更加细致的调整图片颜色.其实颜色矩阵变换是图片颜色变化的基础原理.在下面我们将详细说一说. 一.基础知识 在用色光三原色来变换图片颜色中,涉及到一个类ColorMatrix,也就是颜色矩阵的意思.而a

opencv 一堆算法,图像处理等

http://blog.csdn.net/wangzhebupt/article/category/1675453 数据挖掘十大经典实用算法及OpenCV算法 http://www.xuebuyuan.com/2178605.html 线性判别分析(Linear Discriminant Analysis, LDA)算法分析 表示看了h 转自  http://blog.csdn.net/warmyellow/article/details/5454943... 2014-08-10 20:06 

openCV 和GDI画线效率对照

一. 因为项目须要,原来用GDI做的画线的功能.新的项目中考虑到垮平台的问题.打算用openCV来实现.故此做个效率对照. 二. 2点做一条线,来測试效率. 用了相同的画板大小---256*256的大小,函数通过參数输入.用GetTickCount来实现计时功能. 三. GDI的主要循代码例如以下: void show_line(int line_num,int point_num) { ULONAG start_time = get_tick_count(); VMGdiPolygon* te

Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)

Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜  - CISepiaTone 这个有点复古老照片发黄的效果(上面一张是原图). 扩展UIImage类,添加棕褐色滤镜: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import UIKit //--- UIImageFilterExtensi

PS教程1000例

http://www.missyuan.com/thread-446934-1-1.html Photoshop绘制逼真头发发丝效果http://www.missyuan.com/thread-446912-1-1.html Photoshop合成在空中漂移的陆地http://www.missyuan.com/thread-446909-1-1.html Photoshop制作漂亮的紫色水晶字效果http://www.missyuan.com/thread-446908-1-1.html Pho

Paint、Canvas、Matrix使用讲解(一、Paint)

好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和水波纹效果,分别使用android框架和自己绘制实现,俗话说,工欲善其事,必先利其器,接下来几篇文章主要讲绘制中我们需要常使用的一些利器: Paint:画笔 Canvas:画布 Matrix:变换矩阵 绘制动效确实就像拿着笔在画布上面画画一样,而Paint就是我们拿着的笔,Canvas就是使用的画布: 一.Paint(画笔) 根据我们要画的类型,我们可以选择不同的笔,比如大气磅礴的山水画,我们可以选择大头的毛笔:细