C ++ 및 OpenCV를 사용하고 있습니다. 이제 내 코드에서 많은 Mats에서 사용할 특정 Mat
유형 (예 :)을 정의하고 싶습니다 CV_32FC3
.
이를 달성하기 위해 다음과 같이 시도했습니다.
#define FLOW_TYPE CV_32FC3;
cv::Mat BaoOpticalFlow::initialize(cv::Mat & frame1, cv::Mat & frame2)
{
cv::Mat flow = cv::Mat(frame1.rows, frame1.cols, FLOW_TYPE);
}
그러나 이로 인해 오류가 발생합니다.
')'가 필요합니다.
표현을 기대했다
그런 다음 시도했습니다.
#define FLOW_TYPE CV_32FC3;
cv::Mat BaoOpticalFlow::initialize(cv::Mat & frame1, cv::Mat & frame2)
{
int test = FLOW_TYPE;
cv::Mat flow = cv::Mat(frame1.rows, frame1.cols, test);
}
작동하지만 내 의견으로는 추악합니다.
나는 이것이 왜 또는 어떻게 작동하는지, 그리고 왜 첫 번째 스 니펫이 오류를 일으키는 지 이해하지 못합니다. 저는 C ++ 전문가가 아니므로 도움을 주시면 감사하겠습니다.
당신의 실수는 ;
정의의 끝에 있습니다. 코드는 다음과 같아야합니다.
#define FLOW_TYPE CV_32FC3
cv::Mat BaoOpticalFlow::initialize(cv::Mat & frame1, cv::Mat & frame2)
{
cv::Mat flow = cv::Mat(frame1.rows, frame1.cols, FLOW_TYPE);
}
다음과 같이 정의를 모두 제거하면 더 좋습니다.
constexpr auto FLOW_TYPE = CV_32FC3;
cv::Mat BaoOpticalFlow::initialize(cv::Mat & frame1, cv::Mat & frame2)
{
cv::Mat flow = cv::Mat(frame1.rows, frame1.cols, FLOW_TYPE);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다