在js中对彩色图像使用直方图均衡
Using histogram equalization in color image in js
我想在彩色图像输出中使用 OpenCV 直方图均衡,但我没有找到执行此操作的方法。
这是教程:
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();
此代码将图像转换为灰色。
您可以对彩色图像使用直方图均衡化:
- cvtConvert() 到 hsv(非灰度)
- split() 将 hsv 图像分成单独的 h、s、v 平面
- 在 V(灰度强度)通道上应用 equalizeHist()
- merge() hsv 飞机返回
- cvtConvert() 返回 RGBA
这是我在@berak 帮助下找到的答案。
这将均衡彩色图像的直方图
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();
我想在彩色图像输出中使用 OpenCV 直方图均衡,但我没有找到执行此操作的方法。 这是教程: 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();
此代码将图像转换为灰色。
您可以对彩色图像使用直方图均衡化:
- cvtConvert() 到 hsv(非灰度)
- split() 将 hsv 图像分成单独的 h、s、v 平面
- 在 V(灰度强度)通道上应用 equalizeHist()
- merge() hsv 飞机返回
- cvtConvert() 返回 RGBA
这是我在@berak 帮助下找到的答案。 这将均衡彩色图像的直方图
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();