我可以在自己的自定义数据2D数组上使用opencv cvResize()函数吗?如果是,怎么做?
目标: 我正在尝试使用openCV函数cvResize()对2D数组重新采样。[我在openCV中使用cvResize有一个工作代码,我知道它的用法]但是我要重新采样的输入2D数组不是openCV使用cvLoadImage()读取的任何图像- 1.我想从一个文本文件中读取2D数组。该文件中有浮点值。我将使用opencv库在这个测试代码中打开该文件,读取二维浮点数组中的值 2.然后使用cvResize()调整其大小。首先我想对它进行下采样-宽度/2,高度/2 3.然后我想把它放大4-宽度*4,高度*4。这是我最后的2D阵列 4.将最终2D数组作为浮点值存储到文本文件中 5.基本上,我想使用OpenCV使用的双线性插值逻辑,但我自己的数据。我可以查看cvResize()的代码的路径/文件 欢迎使用任何指针。您可以在自定义数据上使用包装器,然后继续将其用作普通的我可以在自己的自定义数据2D数组上使用opencv cvResize()函数吗?如果是,怎么做?,opencv,resampling,Opencv,Resampling,目标: 我正在尝试使用openCV函数cvResize()对2D数组重新采样。[我在openCV中使用cvResize有一个工作代码,我知道它的用法]但是我要重新采样的输入2D数组不是openCV使用cvLoadImage()读取的任何图像- 1.我想从一个文本文件中读取2D数组。该文件中有浮点值。我将使用opencv库在这个测试代码中打开该文件,读取二维浮点数组中的值 2.然后使用cvResize()调整其大小。首先我想对它进行下采样-宽度/2,高度/2 3.然后我想把它放大4-宽度*4,高度
Mat
对象。您将使用的构造函数是:
Mat::Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP)
这里的困难似乎在于,您使用的是一种数据类型(2D数组)来存储从文件中读取的数据,这与
cvResize()
的工作方式不兼容(它是IplImage*
记住?)
如果您正在使用OpenCV的C接口(通过观察您的其他问题,我知道您是),在成功地将数据从文件读取到自定义数据类型(2D数组?)后,您需要创建一个足够大的IplImage*
,以存储此信息
IplImage*cv_data_img=cvCreateImage(cvSize(自定义数据高度,自定义数据宽度),IPL_深度32F,1)
在那之后,您必须重复cv\u data\u img
复制原始数据
在cv\u data\u img
中填充数据后,您可以创建其他IplImage*
您需要存储cvResize()的结果
最后,您可以对生成的IplImage*
进行迭代,并将其复制回原始数据类型(2D数组),或者对其执行任何操作。@karlphilip-我在前面的问题中发布了一条建议。我不需要cvCopy()。请看那里的评论,让我知道你的意见。@karlphilip-有关于这个问题的建议吗?谢谢。我为你添加了一条路径。我怀疑您能够填充缺少的部分。@karlphilip-在openCV中,如何打开文本文件,将其中的浮点值读入某个浮点数组,然后将其复制到openCV-IplImage类型变量?任何示例代码。@goldenmean-ACK,我稍后会回复你,我现在正在工作,非常忙。还要检查opencv金字塔函数。这很好地涵盖了这个用例。