You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python计算图像指定区域的最小与最大数据值?

获取图像指定区域的最小和最大像素值

不需要用嵌套循环,利用numpy的切片特性可以直接提取目标区域,再调用内置方法计算最值,高效又简洁。

核心思路

你的红框区域是图像所有行的最后50列,用numpy切片img[:, -50:]就能直接提取这个区域,之后调用min()和max()即可得到结果。

代码实现

单通道灰度图(shape=(256,256))

import cv2
import numpy as np

# 读取灰度图像
img = cv2.imread("your_image_path.png", cv2.IMREAD_GRAYSCALE)

# 提取目标区域:所有行,最后50列
target_area = img[:, -50:]

# 计算最值
min_value = target_area.min()
max_value = target_area.max()

print(f"区域最小值: {min_value}, 区域最大值: {max_value}")

彩色图像(shape=(256,256,3))

如果是三通道彩色图,可选择跨通道计算整体最值,或按通道分别计算:

import cv2
import numpy as np

# 读取彩色图像
img = cv2.imread("your_image_path.png")

# 提取目标区域:所有行,最后50列,所有通道
target_area = img[:, -50:, :]

# 跨通道的整体最值
global_min = target_area.min()
global_max = target_area.max()

# 按通道分别计算最值(返回BGR三个通道的最值)
channel_min = target_area.min(axis=(0, 1))
channel_max = target_area.max(axis=(0, 1))

print(f"整体最小值: {global_min}, 整体最大值: {global_max}")
print(f"各通道最小值(BGR): {channel_min}, 各通道最大值(BGR): {channel_max}")

效率说明

numpy的切片和内置最值方法是底层优化实现的,比你尝试的Python嵌套循环快得多,尤其在处理图像这类数组时,能显著提升运行速度。

内容的提问来源于stack exchange,提问作者Jacob Issac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:11:16