学习OpenCV:滤镜系列(4)——波浪:正弦
来源:互联网 发布:javascript实战 源码 编辑:程序博客网 时间:2024/05/17 02:14
==============================================
版权所有:小熊不去实验室CSDN博客
==============================================
#include <math.h>#include <opencv/cv.h>#include <opencv/highgui.h>using namespace cv;using namespace std;double angle;int deltaI=10;//波浪周期;int A=10;//波浪振幅;Mat src,img;static void onTrackbar(int, void*){int width=src.cols;int heigh=src.rows;angle = 0.0;for (int y=0; y<heigh; y++){int changeX = A*sin(angle);uchar *srcP = src.ptr<uchar>(y);uchar *imgP = img.ptr<uchar>(y);for (int x=0; x<width; x++){if(changeX+x<width && changeX+x>0)//正弦分布(-1,1){imgP[3*x]=srcP[3*(x+changeX)];imgP[3*x+1]=srcP[3*(x+changeX)+1];imgP[3*x+2]=srcP[3*(x+changeX)+2];}//每行开始和结束的空白区;else if(x<=changeX) {imgP[3*x]=srcP[0];imgP[3*x+1]=srcP[1];imgP[3*x+2]=srcP[2];}else if (x>=width-changeX){imgP[3*x]=srcP[3*(width-1)];imgP[3*x+1]=srcP[3*(width-1)+1];imgP[3*x+2]=srcP[3*(width-1)+2];}}angle += ((double)deltaI)/100;}imshow("Waves map",img);}int main(){src = imread("D:/test4.jpg");src.copyTo(img);namedWindow("Waves map", 1);// create a toolbarcreateTrackbar("振幅", "Waves map", &A, 100, onTrackbar);createTrackbar("频率", "Waves map", &deltaI, 100, onTrackbar);// Show the imageonTrackbar(0, 0);waitKey();imwrite("D:/wave.jpg",img);}
波浪:
- 学习OpenCV:滤镜系列(4)——波浪:正弦
- 学习OpenCV:滤镜系列(4)——波浪:正弦
- 学习OpenCV:滤镜系列(1)—— 雕刻&浮雕
- 学习OpenCV:滤镜系列(2)——扩张&挤压
- 学习OpenCV:滤镜系列(3)——颜色变幻
- 学习OpenCV:滤镜系列(6)——风
- 学习OpenCV:滤镜系列(7)——漩涡
- 学习OpenCV:滤镜系列(8)——素描
- 学习OpenCV:滤镜系列(14)——载入选区
- 学习OpenCV:滤镜系列(1)—— 雕刻&浮雕
- 学习OpenCV:滤镜系列(2)——扩张&挤压
- 学习OpenCV:滤镜系列(3)——颜色变幻
- 学习OpenCV:滤镜系列(6)——风
- 学习OpenCV:滤镜系列(7)——漩涡
- 学习OpenCV:滤镜系列(8)——素描
- 学习OpenCV:滤镜系列(14)——载入选区
- OpenCV——PS滤镜之 波浪效果 wave
- 学习OpenCV:滤镜系列(9)——扩散(毛玻璃)
- linux 的锁机制总结
- Getting Started with D3 [Part 2]
- 搭建一个个人博客
- 树莓派轮盘游戏机设计实现
- search dialog
- 学习OpenCV:滤镜系列(4)——波浪:正弦
- shell脚本:test
- Similar Word 变序词代码
- jquery中使用event.target的几点
- 笔试小题
- Linux之CGI编程小结
- 实时游戏的设计及实现
- linux Crontab 使用
- Qt中的tr()