在上一篇简析了全黑环境R,G,B通道电平信号的问题:
有伙伴留言问确认R,G,B通道电平信号的方法,这里给大家介绍两个方法。
Photoshop
使用Photoshop打开图片,选择右边的直方图图标(需要在选项卡中调出):
选择“颜色”:
可以看到红,绿,蓝各通道信号的直方图。将此处的截图放大后确认各通道电平的一致性更直观。
OpenCV
使用Python导入OpenCV对图片进行处理(电脑需要配置Python环境),运行程序,选中图片,生成对应图片的R,G,B通道电平信号图:
Python源码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
from tkinter import Tk
from tkinter.filedialog import askopenfilename
import os
# 允许的文件类型
allowed_extensions = ['.jpg', '.jpeg', '.bmp', '.png']
# 弹出对话框选择图片
Tk().withdraw()
filename = askopenfilename(filetypes=[("Image Files", "*.jpg *.jpeg *.bmp *.png")])
# 读取图片
image = cv2.imread(filename)
# 将图片转换为RGB格式
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 计算R、G、B通道的直方图
hist_r = cv2.calcHist([image_rgb], [0], None, [256], [0, 256])
hist_g = cv2.calcHist([image_rgb], [1], None, [256], [0, 256])
hist_b = cv2.calcHist([image_rgb], [2], None, [256], [0, 256])
# 绘制R、G、B通道的直方图
plt.figure(figsize=(10, 8))
plt.subplots_adjust(hspace=0.5)
plt.subplot(311)
plt.plot(hist_r, color='r')
plt.title('Red Channel Histogram', loc='center')
plt.subplot(312)
plt.plot(hist_g, color='g')
plt.title('Green Channel Histogram', loc='center')
plt.subplot(313)
plt.plot(hist_b, color='b')
plt.title('Blue Channel Histogram', loc='center')
# 获取原文件的前缀
file_prefix = os.path.splitext(filename)[0]
# 保存直方图图片
histogram_filename = file_prefix + '_histogram.png'
plt.savefig(histogram_filename)
plt.close()
print('直方图已保存为', histogram_filename)