Konwertuj obraz jednokanałowy na 3-kanałowy obraz C ++/OpenCV
Używam openCV C ++
Muszę przekonwertować obraz 1 kanału na 3 kanały. Mogę więc użyć tego:
cvCvtColor (wynik, szary, CV_BGR2GRAY);Wydaje się, że nie mogę tego zrobić, ponieważ wyjście img jest obrazem jednokanałowym. Jakieś pomysły?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Zarówno dst, jak i gray muszą mieć ten sam typ danych. Nie można po prostu połączyć zmiennej zmiennoprzecinkowej w macierz uint. Będziesz musiał użyć do tego cvScale.
Anonimowy użytkownik
Potwierdzenie od:
cvtColor
w referencji OpenCV i znalazłem to:
C++: void
cvtColor
(InputArray
src
, OutputArray
dst
, int
code
, int
dstCn
=0 )
dstCn
- liczba kanałów w docelowym obrazie. Jeśli parametr jest równy 0, to liczba kanałów jest automatycznie określana na podstawie źródła i kodu.
użyłem
aby przekonwertować dywanik 3-kanałowy na 1 kanał i zadziałało. Więc zmień
dstCn
dla 3 może zadziałać dla Ciebie :)
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Jeśli wejście jest szare, wyjście będzie szare. Najlepsze, co możesz uzyskać, to kolorowy obraz oparty na danych pikseli, powiedzmy dla danych pikseli, a nie obraz w prawdziwych kolorach