2016-07-17 2 views

답변

2

첫 번째는 정확히 같은 방식으로 매트 객체의 공간 (만약 당신이 좋아하면 헤더)를 할당

Mat image 

대신 사용할 수 있습니다.

데이터의 크기와 유형을 지정하거나 이미지를로드하면 실제 데이터를위한 메모리가 할당됩니다.

이것은 실제로 초등 C 또는 C++ 프로그래밍 질문이며 openCV와 관련이 없습니다. Mat img과 Mat * img = new (Mat (...))`둘 다 매트 자체를위한 공간을 만듭니다 (헤더 만). 두 경우 모두 데이터 크기를 지정할 수 있으며 매트는 이미지 데이터에 대해 내부적으로 메모리를 할당합니다. 이것은 당신에게 보이지 않으며 매트를 보관하는 방법과 관련이 없습니다.

+0

이론적으로 Mat * img를 만들었고 나중에 * img = Mat (param, param, param, param)을 만들 수 있습니까? – lluisrojass

+0

아니요 - 당신이 할 수있는'Mat * img = new (Mat (rows, cols, type))'당신이 C++이라고 가정 할 때 –

+0

정말로 귀찮은 가치가 없다면 나는 설명에서 이득을 얻을 것입니다. 데이터를 할당 할 때 포인터 만 지정하면됩니까? 그건 의미가 있습니다. 하지만 왜 'Mat img (rows, cols, type)'에 포인터가 필요하지 않습니까? – lluisrojass

관련 문제