1

也许这很简单,但不知何故我不知道出了什么问题。我有一个单列 cv::Mat 我希望将其调整为方阵。这是代码:

int matSize = 5;
Mat src(matSize, 1, CV_8UC1);
//Fill src with data...(all ones but one zero)
cout << "src:\n" << src << endl;

Mat output(matSize, matSize, CV_8UC1);
resize(src.t(), output, output.size());
cout << "output:\n"output << endl;

输出如下所示:

src:
[1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
output:
[1, 1, 1, 1, 1;
1, 1, 1, 1, 1;
1, 1, 1, 1, 1;
1, 1, 1, 1, 1;
1, 1, 1, 1, 1]

所以零丢失了!我需要在更大的环境中使用它,但希望首先让它在小范围内工作。请帮忙!

4

1 回答 1

0

我自己解决了这个问题,正确的功能是“reshape”而不是“resize”,它用于“缩放”矩阵,而不是更改其标题以获得对其数据的不同访问。

于 2013-07-22T16:26:29.140 回答