彩色图像直方图均衡化代码
时间: 2023-06-17 18:07:00 浏览: 123
以下是Python代码实现彩色图像直方图均衡化:
```python
import cv2
# 读取彩色图像
img = cv2.imread('image.jpg')
# 将图像转为YCrCb颜色空间
img_YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
# 对亮度通道进行直方图均衡化
img_YCrCb[:,:,0] = cv2.equalizeHist(img_YCrCb[:,:,0])
# 将图像转回BGR颜色空间
img_equalized = cv2.cvtColor(img_YCrCb, cv2.COLOR_YCrCb2BGR)
# 显示原图和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', img_equalized)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,我们先将彩色图像转为YCrCb颜色空间,只对亮度通道进行直方图均衡化,再将图像转回BGR颜色空间,得到均衡化后的图像。
相关问题
彩色图像直方图均衡化matlab代码
以下是彩色图像直方图均衡化的Matlab代码:
```matlab
% 读入彩色图像
img = imread('color_image.jpg');
% 将RGB图像转换为YCbCr颜色空间
img_ycbcr = rgb2ycbcr(img);
% 对亮度分量进行直方图均衡化
img_y = img_ycbcr(:,:,1);
img_y_eq = histeq(img_y);
% 将处理后的亮度分量替换回原图像中
img_ycbcr(:,:,1) = img_y_eq;
% 将YCbCr图像转换回RGB颜色空间
img_eq = ycbcr2rgb(img_ycbcr);
% 显示原图像和处理后的图像
figure;
subplot(1,2,1), imshow(img), title('Original Image');
subplot(1,2,2), imshow(img_eq), title('Equalized Image');
```
代码中首先读入彩色图像,然后将其转换为YCbCr颜色空间。接着对亮度分量进行直方图均衡化,将处理后的亮度分量替换回原图像中,最后将YCbCr图像转换回RGB颜色空间。最终显示原图像和处理后的图像。
python彩色图像直方图均衡化
你可以使用Python中的OpenCV库来实现彩色图像直方图均衡化。以下是一个简单的示例代码:
```python
import cv2
# 读取彩色图像
img = cv2.imread('image.jpg')
# 将彩色图像转换为YUV颜色空间
img_yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
# 对Y通道进行直方图均衡化
img_yuv[:,:,0] = cv2.equalizeHist(img_yuv[:,:,0])
# 将YUV图像转换回BGR颜色空间
img_output = cv2.cvtColor(img_yuv, cv2.COLOR_YUV2BGR)
# 显示原始图像和处理后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Histogram Equalized', img_output)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这段代码中,我们首先读取彩色图像,然后将其转换为YUV颜色空间。接下来,我们对Y通道进行直方图均衡化,然后将图像转换回BGR颜色空间。最后,我们显示原始图像和处理后的图像。
阅读全文