-3
Ich habe ein C-Api opencv Projekt und ich möchte in c ändern ++ (mat) sieht diesen ursprünglichen Code:Fehler: Basis Operand '->' hat nicht-Pointer-Typen 'cv :: Mat'
current_cost = 0;
basePtr = (unsigned char*)tmp1->imageData;
for(int j=0; j<tmp1->height; basePtr += tmp1->widthStep, j++)
{
iterator = basePtr;
for(int i=0; i<tmp1->width; iterator++, i++)
if(*iterator == 255)
current_cost++;
}
basePtr = (unsigned char*)tmp2->imageData;
for(int j=0; j < tmp2->height; basePtr += tmp2->widthStep, j++)
{
iterator = basePtr;
for(int i=0; i<tmp2->width; iterator++, i++)
if(*iterator == 0)
current_cost++;
}
if(current_cost < cost)
return true;
else return false;
nach diesem Projekt finden Sie unter diesem Fehler
main.cpp:63:35: error: base operand of ‘->’ has non-pointer type ‘cv::Mat’
basePtr = (unsigned char*)tmp1->imageData;
Fehler sehen für jede Zeile verwendet ‚->‘. bitte helfen Sie mir ...
Der Fehler Sie sagt, dass die tmp1 (und so weiter) ist kein POINTER, sondern hat den Typ cv :: Mat. Also, in diesem Fall nehme ich an, dass die korrekte Form, um damit umzugehen, wie tmp1.imageData (und so weiter) ist. Aber das ist eine Vermutung, da Sie nicht genug von Ihrem Code zeigen. – Jauch
versuchen Sie es mit 'tmp1.imageData' – SimpleGuy