Ошибка OpenCV MatIterator

У меня на самом деле проблема с итератором в OpenCV. Я читаю из LabView изображение и сохраняю его в Mat imgIn. После этого я создаю второй Mat для обработки изображений Mat imOut. Когда я клонирую это и пытаюсь отправить его обратно в LabView, я получаю черное изображение, поэтому никакой информации не было отправлено.

#include <windows.h>
#include "extcode.h"#include <iostream>
#include <stdio.h>
#include "opencv2/opencv.hpp"#include "opencv2/core.hpp"#include "opencv2/core/utility.hpp"#include "opencv2/imgproc.hpp"#include "opencv2/imgcodecs.hpp"#include "opencv2/highgui.hpp"
using namespace cv;
using namespace std;

// --- Dll entry point ---
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD  ul_reason_for_call,
LPVOID lpReserved
)
{
UNREFERENCED_PARAMETER(hModule);
UNREFERENCED_PARAMETER(lpReserved);
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */__declspec(dllexport) INT myDoSomething(short* M, short* N, short* image, int SizeX, int SizeY, short* imgOut){

// Alloc Memory
Mat imgIn(SizeX, SizeY, CV_16S, &image[0]);
Mat imOut(SizeX, SizeY, CV_16S, &imgOut[0]);// Clone Source Image

imOut = imgIn.clone();

// Get size for DFT

*M = getOptimalDFTSize(imgIn.rows);
*N = getOptimalDFTSize(imgIn.cols);

MatIterator_ it;// = imOut.begin<short>();

//for(int x=0;x<=SizeX;x++){

//imgOut = imOut.at<short>(x,y);
//}

return 0;
}#ifdef __cplusplus
}
#endif  /* __cplusplus */

В LabView все правильно.
VS ошибка:

Ошибка Fehler 1 C2955: «cv :: MatIterator_»: Für die Verwendung der template-Klasse istine template-Argumentliste erforderlich.

-1

Решение

MatIterator_ это шаблон класса.

это именно то, что говорит ошибка, вы должны указать тип (а также для begin () и end ()):

MatIterator_<short> it = imOut.begin<short>();
for (; it != imOut.end<short>(); ++it)
{
...
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]