当前位置: 首页 > news >正文

图像扭曲之波浪扭曲

源码:

void wave_sine(cv::Mat& src,cv::Mat& dst,double amplitude,double wavelength)
{dst.create(src.rows, src.cols, CV_8UC3);dst.setTo(0);double xAmplitude = amplitude;double yAmplitude = amplitude;double xWavelength = wavelength;double yWavelength = wavelength;for (int h = 0; h < dst.rows; h ++) {double fh = h / yWavelength;fh = sin(fh);fh = h + yAmplitude * fh;int nh = floor(fh);if (nh < 0 || nh > dst.rows - 1)nh = h;for (int w = 0; w < dst.cols; w ++) {double fw = w / xWavelength;//sinefw = sin(fw);fw = w + xAmplitude * fw;int nw = floor(fw);if (nw < 0 || nw > dst.cols - 1)nw = w;dst.at<Vec3b>(h, w)[0] = src.at<Vec3b>(nh, nw)[0];dst.at<Vec3b>(h, w)[1] = src.at<Vec3b>(nh, nw)[1];dst.at<Vec3b>(h, w)[2] = src.at<Vec3b>(nh, nw)[2];}}
}

原图:

 当amplitude = 22,wavelength=30时的效果:

 

http://www.lryc.cn/news/144154.html

相关文章:

  • 《自动驾驶与机器人中的SLAM技术》之GNSS相关基础知识总结
  • 【前端|CSS系列第4篇】面试官:你了解居中布局吗?
  • 安全物理环境技术测评要求项
  • SAP MTS案例教程PP生产前台操作
  • Celery task 执行报错 TypeError: Object of type set is not JSON serializable 问题分析处理
  • 【大魔王送书第一期】《一名阿里服务端开发工程师的进阶之路》
  • [FPGA IP系列] BRAM IP参数配置与使用示例
  • react ts
  • 配置MySQL
  • GFPGAN 集成Flask 接口化改造
  • vue数字输入框
  • JavaScript—BOM
  • C# SocketException(0x2746) asp.net一个现有的连接被远程主机强行关闭
  • 博客系统后端(项目系列2)
  • 随机化快速排序(Java 实例代码)
  • JVM 垃圾收集
  • kubesphere中部署grafana实现dashboard以PDF方式导出
  • 【环境配置】Android-Studio-OpenCV-JNI以及常见错误 ( 持续更新 )
  • js 正则表达式 验证 :页面中一个输入框,可输入1个或多个vid/pid,使用英文逗号隔开...
  • 【算法与数据结构】112、LeetCode路径总和
  • ②matlab桌面和编辑器
  • 高亮img、pdf重点部分(html2canvas、pdfjs-dist、react-pdf)
  • 18.神奇导航菜单指示器
  • WPF+Prism+WebApi 学习总结
  • uniapp热更新
  • AUTOSAR从入门到精通-【应用篇】基于CAN协议的汽车尾气后处理诊断系统的软件开发(续)
  • mybatis plus新版代码生成器,类型转换处理器ITypeConvertHandler使用
  • python中的matplotlib画直方图(数据分析与可视化)
  • 【详解】文本检测OCR模型的评价指标
  • Python遥感图像处理应用篇038 GDAL 遥感图像特征提取(统计特征图)