Funkcja OpenCV cvtColor konwertuje przestrzeń kolorów macierzy (np. Z RGB na skalę szarości). C podpis funkcyjnego ++ jestCzy można użyć funkcji OpenCV cvtColor do konwersji macierzy w miejscu?
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0)
Czy ta funkcja jest używana konwertować matrycę w miejscu, to znaczy z src
tego samego obiektu jako dst
?
cv::Mat mat = getColorImage();
cvtColor(mat, mat, CV_RGB2GRAY);
(Zdaję sobie sprawę, że tak czy inaczej, jako miejsce przeznaczenia ma różną liczbę kanałów niż źródła, to nadal będą musiały przeznaczyć nowy blok pamięci do miejsca przeznaczenia.)
Więcej ogólnie, czy istnieje konwencja w ramach API OpenCV, aby określić, kiedy funkcja może być używana w ten sposób?
To można zrobić, gdy źródłowy i docelowy mają taką samą liczbę kanałów. np. RGB do YUV, RGB do YCbCr i na odwrót itd. ... – sgarizvi