Używam OpenCV 2.4.2 i próbuję wykonać projekcje dwóch macierzy (tmpl(32x44), subj(32x44))
wzdłuż wiersza i kolumny. Zainicjowałem macierz wyników jako rowProjectionSubj(subj.rows,1,CV_8UC1)
Następnie zadzwonię pod numer cv::reduce(subj,rowProjectionSubj,1,CV_REDUCE_SUM,-1);
Dlaczego to narzeka na niezgodność typu? Ja zachowałem typy sama (przez utrzymywanie dtype=-1
w cv::reduce
dostaję obiekty tmpl
i subj
, wykonując cv::imread("image_path",0)
czyli skanowania obrazów w skali szarości wNieobsługiwany format lub kombinacja formatów przy użyciu metody cv :: reduce w OpenCV
5
A
Odpowiedz
2
I nie może być w porządku, ale po tym jak zobaczyłem to:..
i przy odrobinie eksperymentu i przy użyciu starego przyjaciela o nazwie "zarejestruj matematyki", zdałem sobie sprawę, że po dodaniu dwóch liczb 8-bitowych, należy rozważyć rejestr 8 + 1 + 1 bit do przechowywania sumy, ponieważ potencjalnie ma nośnik wyjściowy, więc każdy wynik redukcji powinien mieć większą przestrzeń niż źródło, np. źródło jest 8-bitowy unsigned, powinno być co najmniej 16-bitowe unsigned lub signed; równie dobrze może być 32-bitowy, jeśli będzie używany do obliczania niektórych produktów i takich ...
UWAGA: Typ miejsca docelowego musi być WYJĄTKOWO określony w metodzie cv :: reduce. Proszę śledzić mój link openCV w celu uzyskania dalszych informacji.