如何在opencv中使用matlab c++库绘制点
Posted
技术标签:
【中文标题】如何在opencv中使用matlab c++库绘制点【英文标题】:How to plot points using matlab c++ library in opencv 【发布时间】:2012-09-30 22:17:41 【问题描述】:我正在使用opencv的matlab库来使用matlab图像并对其执行HoughCircles
算法。
我想动态创建 matlab 图像而不是 imread
-ing 它们。
使用该图像,我想绘制一个我收集的 x,y 坐标数组。
我可以通过说“声明”图像
Mat img
但这就是我所得到的。我找不到将点绘制到其中的函数。
如果有人有任何见解,我将不胜感激!
【问题讨论】:
对了,opencv中的ml模块不代表matlab,而是代表机器学习 感谢您的更正。我想我应该少做一些假设-_- 【参考方案1】:检查cv::Mat
docs 并查看它提供的几个构造函数:
要从二维数组初始化 cv::Mat
,您可以这样做:
float data[2][2] = 1,3,5,7,9, 2,4,6,8,10 ;
cv::Mat img = cv::Mat(2, 5, CV_32FC1, &data);
或者,如果您需要单独访问像素:
Accessing all pixels in cv::Mat(1 个频道) Cycle through pixels with opencv(3 个频道) OpenCV get pixel information from Mat image(3 个频道) Get data from Mat / cv::Mat in OpenCV(3 个频道) Find pixel color out of cv::Mat on specific position(1 和 3 频道)(这个网站与 *** 非常相似,不是吗?)您可能也有兴趣阅读:
What's the shortest way to plot points with opencv and c++?【讨论】:
我想我的脑袋会因为试图在一天内学习所有这些而爆炸。但只是为了澄清:这一行: cv::Mat img = cv::Mat(2, 5, CV_32FC1, &data);表示单个 32f 值的 2x5 图像,加载有上述数据。我试图了解该数据数组如何适合该图像。 data 中的值在图像矩阵中的什么位置? 图像的值存储在data
字段(这是一个指针)中,可以通过img.data
访问
我想说明我的问题。我有一个 std::vector<:point2f> 坐标。我还有一个 Mat img = cv::Mat::zeros(1280,720, CV_8UC1);我试图弄清楚如何轻松地将向量中的坐标初始化为 img 中的 1。我的第一个想法是迭代并执行 .at() =,但我认为有一种更简单的方法
这可能是最有效的方法。如果有其他解决方案,它们将涉及调用 CV 方法,这些方法将执行您手动执行的操作,而且它们将有向堆栈添加函数调用的开销。
太棒了。感谢您的帮助,非常感谢!以上是关于如何在opencv中使用matlab c++库绘制点的主要内容,如果未能解决你的问题,请参考以下文章
如何从 OpenCV C++ 中的 HoughLines 函数输出中绘制所需的线?