C++-实现matlab的meshgird(OpenCV)
作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
场景需求
matlab的meshgird是图像处理时常用的函数,用于生成网格采样点,在3D图形绘制中起了非常关键的作用。C++中运用OpenCV也可以实现同样的效果。
功能函数代码
/**
* @brief UnitCart 生成网格采样点
* @param squaresize 生成网格区域的尺寸
* @param x 生成的x矩阵
* @param y 生成的y矩阵
*/
void UnitCart(int squaresize, cv::Mat& x, cv::Mat& y) {CV_Assert(squaresize % 2 == 1);x.create(squaresize, squaresize, CV_32FC1);y.create(squaresize, squaresize, CV_32FC1);//设置边界x.col(0).setTo(-1.0);x.col(squaresize - 1).setTo(1.0f);y.row(0).setTo(1.0);y.row(squaresize - 1).setTo(-1.0f);float delta = 2.0f / (squaresize - 1.0f); //两个元素的间隔//计算其他位置的值for (int i = 1; i < squaresize - 1; ++i) {x.col(i) = -1.0f + i * delta;y.row(i) = 1.0f - i * delta;}
}
C++测试代码
#include<iostream>
#include<opencv2/opencv.hpp>
#include<ctime>
using namespace std;
using namespace cv;
void UnitCart(int squaresize, cv::Mat& x, cv::Mat& y);
int main(void)
{cv::Mat x, y;int size = 1001;UnitCart(size, x, y);imshow("x", x);imshow("y", y);waitKey(0);system("pause");return 0;
}
void UnitCart(int squaresize, cv::Mat& x, cv::Mat& y) {CV_Assert(squaresize % 2 == 1);x.create(squaresize, squaresize, CV_32FC1);y.create(squaresize, squaresize, CV_32FC1);//设置边界x.col(0).setTo(-1.0);x.col(squaresize - 1).setTo(1.0f);y.row(0).setTo(1.0);y.row(squaresize - 1).setTo(-1.0f);float delta = 2.0f / (squaresize - 1.0f); //两个元素的间隔//计算其他位置的值for (int i = 1; i < squaresize - 1; ++i) {x.col(i) = -1.0f + i * delta;y.row(i) = 1.0f - i * delta;}
}
测试效果
如上图所示,C++所写的代码同matlab中meshgird生成的x和y矩阵一致。
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!
C++-实现matlab的meshgird(OpenCV)相关推荐
- matlab中caitu_tiqu,车牌识别matlab语音版+OpenCV版+测试图像和设计文档
[实例简介] 该文件包含了车牌识别的两个版本:matlab语音版+OpenCV版,有丰富的测试实例和文档信息,测试结果能满足大部分的车牌识别. [实例截图] [核心代码] 5d61aaaa-2457- ...
- matlab fft2的作用,为什么Matlab fft2比OpenCV dft快得多(why Matlab fft2 is much faster than OpenCV dft)...
为什么Matlab fft2比OpenCV dft快得多(why Matlab fft2 is much faster than OpenCV dft) 我只是测试比较OpenCV的dft函数和Mat ...
- 如何把opencv编译到matlab,c – 为OpenCV编译MATLAB绑定
我正在尝试编译OpenCV 3.0的MATLAB绑定,即 Github的当前版本.我一直收到以下错误: CMake Error at /opencv/modules/matlab/compile.cm ...
- 3.6总结半年来的专业学习——图像处理、光栅投影、四步相移、多频外差,从matlab入门到opencv入门
2019.9.17 研究生导师定了,老师给了一些论文,并推荐了几本书 1.计算机辅助光学测量/金观昌著 作者是在美国奥克兰大学杨老师实验室做过访问学者,所以书的内容和实验室的研究方向非常切合 2.基于 ...
- matlab imadjust 用 opencv改写
原文:http://blog.csdn.net/yeyang911/article/details/18256393 自己测试的效果不是很好 实现函数功能 J = low_out +(high_out ...
- info matlab,c – 在OpenCV中是否有类似MATLAB的’impixelinfo()’功能?
你可以这样做: #include #include using namespace std; using namespace cv; Mat img; void CallBackFunc(int ev ...
- opencv remap matlab,如何使用OpenCV的remap函数?
这只是对文件的一个简单的误解,我不怪你--我也花了几次摸索才明白.文档很清楚,但是这个函数可能没有按您预期的方式工作:事实上,它在与我最初预期相反的方向工作. remap()没有做的是获取源图像的坐标 ...
- matlab 调用opencv,matlab调用opencv (mac 或 linux)
思路为利用mexopencv编译opencv为mex,然后让MATLAB调用. 方法1 (仅适用于mac) 利用homebrew下载opencv3. $ brew install pkg-config ...
- Matlab与C/C++混合编程调用OpenCV
*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com http:/ ...
最新文章
- python入门经典例题-Python入门经典练习题
- 第二冲刺站立会议01
- BaseAdapter的一个简单案例
- system函数 与 exec函数的区别
- SpringMVC解决前台传入的数组或集合类型数据
- how does gateway framework treat default system flag in customizing
- lombok的使用三部曲及使用中遇到的问题(持续更新)
- seo日常工作表_5 個日常要做的 SEO 維護工作
- java linux driver,JAVA:使用GeckoDriver在Linux上运行Selenium测试:驱动程序不可执行
- 集成学习(二)——XGBoost
- WebAPI框架里设置异常返回格式统一
- 【廖雪峰官方网站/Java教程】函数式编程
- [翻译]SQL Server 该做和不该做的
- 江苏海洋大学c语言期末考试题库,海南热带海洋学院18级C语言期末考试PAT编程题...
- java将geotiff文件发布为geoserver服务
- [转载]浙江杭西高2011年5月高二地理(徐霞客游记TV版-
- c语言英文拼写检查器,c – 简单的拼写检查算法
- Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation论文解析(视频超分)
- LitsModer —— 开发日志(上)
- pytorch的cuda环境搭建(GPU版本安装)
热门文章
- Linux防火墙-iptables
- ffmpeg编译的静态链接库问题
- (六)Oracle学习笔记—— 约束
- android sdk manager 更新失败
- 使用 IntraWeb (26) - 基本控件之 TIWMenu
- 嵌套循环连接(Nested Loops), 合并联接(Merge), 哈希联接(Hash)的适用情况
- qiniu rs.php,七牛API操作类 - suconghou的个人空间 - OSCHINA - 中文开源技术交流社区...
- 正反斜杠的区别_电脑中的正斜杠(/)与反斜杠(\)的区别
- ​php mysql教学管理系统计算机毕业设让网站作品
- b区计算机科学与技术调剂院校,B区调剂院校梳理!希望你用不到,但一定要收藏!...