1. // define head function
  2. #ifndef PS_ALGORITHM_H_INCLUDED
  3. #define PS_ALGORITHM_H_INCLUDED
  4.  
  5. #include <iostream>
  6. #include <string>
  7. #include "cv.h"
  8. #include "highgui.h"
  9. #include "cxmat.hpp"
  10. #include "cxcore.hpp"
  11.  
  12. using namespace std;
  13. using namespace cv;
  14.  
  15. void Show_Image(Mat&, const string &);
  16.  
  17. #endif // PS_ALGORITHM_H_INCLUDED
  18.  
  19. /*
  20. This program will generate
  21. "Shade" effect.
  22.  
  23. */
  24.  
  25. #include "PS_Algorithm.h"
  26. #include <time.h>
  27.  
  28. using namespace std;
  29. using namespace cv;
  30.  
  31. int main(void)
  32. {
  33. string Img_name("4.jpg");
  34. Mat Image_in;
  35. Image_in=imread(Img_name);
  36. Show_Image(Image_in, Img_name);
  37.  
  38. Mat Image_out(Image_in.size(), CV_32FC3);
  39. Image_in.convertTo(Image_out, CV_32FC3);
  40.  
  41. Mat Image_2(Image_in.size(), CV_32FC3);
  42. Image_in.convertTo(Image_2, CV_32FC3);
  43.  
  44. Mat Map(Image_in.size(), CV_32FC3);
  45. Mat temp;
  46. float val;
  47.  
  48. // build the mapping table
  49. /*
  50. for (int i=0; i<Image_2.rows; i++)
  51. {
  52. temp=Map.row(i);
  53. val=(float)(i)/(float)Image_2.rows;
  54. temp.setTo(Scalar(val,val,val));
  55. }
  56. */
  57.  
  58. // build the mapping talbe
  59. for (int i=0; i<Image_2.cols; i++)
  60. {
  61. temp=Map.col(i);
  62. val=1-std::abs((float)(i)/((float)Image_2.cols/2)-1);
  63. temp.setTo(Scalar(val,val,val));
  64. }
  65.  
  66. Show_Image(Map, "Map");
  67.  
  68. cv::multiply(Image_2, Map, Image_out);
  69.  
  70. Image_out=Image_out/255.0;
  71.  
  72. Show_Image(Image_out, "out");
  73.  
  74. imwrite("out.jpg", Image_out*255);
  75.  
  76. waitKey();
  77. cout<<"All is well."<<endl;
  78.  
  79. }
  80.  
  81. #include "PS_Algorithm.h"
  82. #include <iostream>
  83. #include <string>
  84.  
  85. using namespace std;
  86. using namespace cv;
  87.  
  88. void Show_Image(Mat& Image, const string& str)
  89. {
  90. namedWindow(str.c_str(),CV_WINDOW_AUTOSIZE);
  91. imshow(str.c_str(), Image);
  92.  
  93. }

原图

效果图

OpenCV——PS滤镜,渐变映射的更多相关文章

  1. OpenCV——PS 滤镜, 浮雕效果

    具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITH ...

  2. OpenCV——PS 滤镜, 曝光过度

    算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...

  3. OpenCV——PS滤镜,毛玻璃特效

    程序完成 "毛玻璃" 特效, 不过边缘没有处理,使得最终的图像有黑边. 不过,有了黑边,感觉效果也不错,所以这个bug 没有管. #ifndef PS_ALGORITHM_H_IN ...

  4. OpenCV——PS滤镜, 碎片特效

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  5. OpenCV——PS 滤镜算法之极坐标变换到平面坐标

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  6. OpenCV——PS 滤镜算法之平面坐标到极坐标的变换

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  7. OpenCV——PS滤镜之 波浪效果 wave

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  8. OpenCV——PS滤镜 漩涡 vertex

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  9. OpenCV——PS滤镜算法之 球面化 (凹陷效果)

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

随机推荐

  1. SpriteKit游戏开发 Challenge 2: An invincible zombie 问题的另一种解决方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 该挑战的目的是僵尸碰到敌人时,将其设置为无敌模式,具体要求如下 ...

  2. [django] 利用多线程增加异步任务

    看到django异步大家的反应应该是celery这种消息队列组件,现在用的最多的最推荐的也是这种方式.然而我这需求就是请求来了,执行一个小程序,但是又不能确定这个小程序啥时候执行完,响应又要及时,丢给 ...

  3. SQLite Where 子句(http://www.w3cschool.cc/sqlite/sqlite-where-clause.html)

    SQLite Where 子句 SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件. 如果满足给定的条件,即为真(true)时,则从表中返回特定的值.您可以使用 WHERE 子句 ...

  4. 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 ...

  5. time,gettimeofday,clock_gettime

    time()提供了秒级的精确度 1.头文件 <time.h> 2.函数原型 time_t time(time_t * timer) 函数返回从UTC1970-1-1 0:0:0开始到现在的 ...

  6. 实现memcpy函数

    已知memcpy的函数为: void* memcpy(void* dest , const void* src , size_t count)其中dest是目的指针,src是源指针.不调用c++/c的 ...

  7. Socket层实现系列 — send()类发送函数的实现

    主要内容:socket发送函数的系统调用.Socket层实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 发送流程图 以下是send().sendt ...

  8. 详解EBS接口开发之采购申请导入

    更多内容可以参考我的博客  详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*+++++++ ...

  9. Maven创建EJB

    开发工具: eclipse mars wildfly jdk8 maven 右键新建project,选择other 勾选create simple project 填写信息(自行填写),完成后右键项目 ...

  10. 05 利用Appliction 传值Activity

    步骤一:新建一个类继承Application必须是public class 不然直接奔溃 步骤二:在清单文件AndroidManifest.xml的application添加name属性 值为com. ...