不同TIFF图像像素平均亮度计算与ImageJ结果不一致求助
问题:Python计算TIFF图像亮度均值与ImageJ结果不一致,标准差却相同
- 我编写的Python代码用于读取图像并计算平均亮度和标准差,处理某组偏暗的.TIF数据集时,计算结果与ImageJ直方图结果一致;但处理新的.tiff数据集时,亮度结果差异极大,标准差却完全相同。
- 已准备两组数据各2张图像及对应计算结果(白色背景为ImageJ结果)用于对比。
- 注:对图像应用了5×5中值滤波,对比时使用的是已完成中值滤波的图像;原始图像DPI分别为72和96,处理后均为96 DPI,且均为16位图像;为统计图像中的黑色像素,临时给像素值加1,计算后再减回原值;尝试更换其他库替代cv2,问题仍存在。
计算代码
import cv2 import numpy as np def calc_xray_count(image_path): original_image = cv2.imread(image_path, cv2.IMREAD_ANYDEPTH) median_filtered_image = cv2.medianBlur(original_image, 5) median_filtered_image += 1 # Avoid not counting black pixels in image pixel_count = np.prod(median_filtered_image.shape) img_brightness_sum = np.sum(median_filtered_image) img_var = np.var(median_filtered_image) if (pixel_count > 0): img_avg_brightness = (img_brightness_sum/pixel_count) -1 # Subtract back to real data else: img_avg_brightness = 0 print(f"mean brightness: {img_avg_brightness}") print(f"mean std: {np.sqrt(img_var)}") return img_avg_brightness, img_var
内容的提问来源于stack exchange,提问作者Niandra Lades
相关产品推荐
相关产品推荐

