OpenCV CV_8UC3 à CV_8UC1
Mon image est de type CV_8UC3
(c'est une image en niveaux de gris) et j'ai besoin d'elle comme CV_8UC1
.
Comment puis-je faire la transformation? J'ai déjà essayé
Mat right = new Mat(rectRight.width(), rectRight.height(), CvType.CV_8UC1);
rectRight.convertTo(right, CvType.CV_8UC1,255,0);
Mais il me donne toujours un 3-l'image de canal.
RectLeft est la version rectifiée de cette image:
Imgproc.undistort(Highgui.imread(images[0], Imgproc.COLOR_BGR2GRAY), undist_left, cameraMatrix, distCoeff);
La rectification est effectuée à l'aide de cette partie de code:
Mat rectLeft = new Mat();
Imgproc.initUndistortRectifyMap(cameraMatrix, distCoeff, R1, newCameraMatrix_left, left.size(), CvType. CV_32FC1, map1_left, map2_left);
Imgproc.remap(left, rectLeft, map1_left, map2_left, Imgproc.INTER_LANCZOS4);
Le corrigé de l'image (et son partenaire de la caméra de droite) doit être utilisé dans
StereoBM stereoAlgo = new StereoBM();
stereoAlgo.compute(left, right, disparity);
Mais il y a une exception qui dit que les deux images d'entrée doit être de type CV_8UC1
mais j'ai vérifié et rectLeft.type()
me donne un 16. (Je suppose que c'est CV_8UC1
).
OriginalL'auteur glethien | 2014-04-01
Vous devez vous connecter pour publier un commentaire.
vous voudrez probablement une conversion en niveaux de gris pour StereoBM :
http://docs.opencv.org/java/org/opencv/imgproc/Imgproc.html#cvtColor(org.opencv.core.Mat,%20org.opencv.core.Mat,%20int,%20int)
(vous ne pouvez pas modifier/réduire le nombre de canaux avec des Tapis.convertTo(), seule la profondeur)
OriginalL'auteur berak
N ° 16 est
CV_8UC3
:Vous devez le convertir en niveaux de gris:
Par les références:
ou
split
les canaux et de prendre un seul d'entre eux, ou de convertir des images binaires à l'aide dethreshold
EDIT:
Pour une réponse complète sur la façon dont les types (comme 8UC1 etc) sont à construire dans opencv voir cette.
De conversion en niveaux de gris.. google, c'est plein de bonnes ressources. Rappelez-vous les références L'image de base conteneur
OriginalL'auteur nkint