Quiero usar la ecualización de histograma OpenCV con salida de imagen en color, pero no encontré la manera de hacerlo. aquí está el tutorial: https://docs.opencv.org/3.4/d2/d74/tutorial_js_histogram_equalization.html
let src = cv.imread('canvasInput'); let dst = new cv.Mat(); cv.cvtColor(src, src, cv.COLOR_RGBA2GRAY, 0); cv.equalizeHist(src, dst); cv.imshow('canvasOutput', src); cv.imshow('canvasOutput', dst); src.delete(); dst.delete();este código convierte la imagen en gris.
puede usar la ecualización de histograma con imágenes en color:
Aquí está la respuesta que encontré con la ayuda de @berak. esto igualará el histograma para las imágenes en color
let imgElement = document.getElementById("ImgViewImage"); // img element with ImgViewImage id let src = cv.imread(imgElement); let dst = new cv.Mat(); let hsvPlanes = new cv.MatVector(); let mergedPlanes = new cv.MatVector(); cv.cvtColor(src, src, cv.COLOR_RGB2HSV, 0); cv.split(src, hsvPlanes); let H = hsvPlanes.get(0); let S = hsvPlanes.get(1); let V = hsvPlanes.get(2); cv.equalizeHist(V, V); mergedPlanes.push_back(H); mergedPlanes.push_back(S); mergedPlanes.push_back(V); cv.merge(mergedPlanes, src); cv.cvtColor(src, dst, cv.COLOR_HSV2RGB, 0); cv.imshow("canvasOutput", dst); // canavas element with canvasOutput id src.delete(); dst.delete(); hsvPlanes.delete(); mergedPlanes.delete();