【发布时间】:2016-08-01 20:03:22
【问题描述】:
我有一个 Mat 对象 (CV_8UC1),它是一个二进制映射,在某些位置为 1,否则为零。我想创建一个向量来存储 Mat 为 1 的点的坐标。关于如何去做吧。 我知道我可以使用以下代码循环图像并检查点
for( int p = 1; p <= img.rows; p++ )
{ for( int q = 1; q <= img.cols; q++ )
{
if( img.at<uchar>(p,q) == 1 )
{
//what to do here ?
}
}
}
另外,我需要坐标是单精度浮点数。这是为了将其用作另一个需要向量的函数的输入。 请给个提示。我对向量数据类型和STL不熟悉。
【问题讨论】:
-
你有没有尝试阅读几个 std::vector 的例子?这很简单:),您还可以查看 SO 文档:stackoverflow.com/documentation/c%2b%2b/511/…
-
顺便说一句,如果您尝试启动您的程序,您的循环将因访问冲突异常而失败。尝试了解从零开始的索引在大多数现代编程语言中的工作原理。
-
啊,这是一个愚蠢的错误。顺便说一句,我确实了解基于零的索引。