OpenCV——PS滤镜,渐变映射
- // 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
- "Shade" effect.
- */
- #include "PS_Algorithm.h"
- #include <time.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);
- 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 Map(Image_in.size(), CV_32FC3);
- Mat temp;
- float val;
- // build the mapping table
- /*
- for (int i=0; i<Image_2.rows; i++)
- {
- temp=Map.row(i);
- val=(float)(i)/(float)Image_2.rows;
- temp.setTo(Scalar(val,val,val));
- }
- */
- // build the mapping talbe
- for (int i=0; i<Image_2.cols; i++)
- {
- temp=Map.col(i);
- val=1-std::abs((float)(i)/((float)Image_2.cols/2)-1);
- temp.setTo(Scalar(val,val,val));
- }
- Show_Image(Map, "Map");
- cv::multiply(Image_2, Map, Image_out);
- Image_out=Image_out/255.0;
- Show_Image(Image_out, "out");
- 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);
- }
原图
效果图
OpenCV——PS滤镜,渐变映射的更多相关文章
- OpenCV——PS 滤镜, 浮雕效果
具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITH ...
- OpenCV——PS 滤镜, 曝光过度
算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...
- OpenCV——PS滤镜,毛玻璃特效
程序完成 "毛玻璃" 特效, 不过边缘没有处理,使得最终的图像有黑边. 不过,有了黑边,感觉效果也不错,所以这个bug 没有管. #ifndef PS_ALGORITHM_H_IN ...
- OpenCV——PS滤镜, 碎片特效
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- OpenCV——PS 滤镜算法之极坐标变换到平面坐标
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- OpenCV——PS 滤镜算法之平面坐标到极坐标的变换
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- OpenCV——PS滤镜之 波浪效果 wave
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- OpenCV——PS滤镜 漩涡 vertex
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- OpenCV——PS滤镜算法之 球面化 (凹陷效果)
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
随机推荐
- SpriteKit游戏开发 Challenge 2: An invincible zombie 问题的另一种解决方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 该挑战的目的是僵尸碰到敌人时,将其设置为无敌模式,具体要求如下 ...
- [django] 利用多线程增加异步任务
看到django异步大家的反应应该是celery这种消息队列组件,现在用的最多的最推荐的也是这种方式.然而我这需求就是请求来了,执行一个小程序,但是又不能确定这个小程序啥时候执行完,响应又要及时,丢给 ...
- SQLite Where 子句(http://www.w3cschool.cc/sqlite/sqlite-where-clause.html)
SQLite Where 子句 SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件. 如果满足给定的条件,即为真(true)时,则从表中返回特定的值.您可以使用 WHERE 子句 ...
- ROS_Kinetic_x ROS栅格地图庫 Grid Map Library
源自:https://github.com/ethz-asl/grid_map Grid Map Overview This is a C++ library with ROS interface t ...
- time,gettimeofday,clock_gettime
time()提供了秒级的精确度 1.头文件 <time.h> 2.函数原型 time_t time(time_t * timer) 函数返回从UTC1970-1-1 0:0:0开始到现在的 ...
- 实现memcpy函数
已知memcpy的函数为: void* memcpy(void* dest , const void* src , size_t count)其中dest是目的指针,src是源指针.不调用c++/c的 ...
- Socket层实现系列 — send()类发送函数的实现
主要内容:socket发送函数的系统调用.Socket层实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 发送流程图 以下是send().sendt ...
- 详解EBS接口开发之采购申请导入
更多内容可以参考我的博客 详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...
- Maven创建EJB
开发工具: eclipse mars wildfly jdk8 maven 右键新建project,选择other 勾选create simple project 填写信息(自行填写),完成后右键项目 ...
- 05 利用Appliction 传值Activity
步骤一:新建一个类继承Application必须是public class 不然直接奔溃 步骤二:在清单文件AndroidManifest.xml的application添加name属性 值为com. ...