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

如何在图像中选择圆形区域并计算该区域的均值、标准差?

提取图像中间区域并计算统计量的实现方法

核心思路

通过确定中间区域的边界,利用numpy切片截取目标区域,再针对该区域计算均值、标准差等统计值,替代原代码中对整幅图像的计算。

具体实现步骤与修改后的代码

在你现有代码的test = cv2.divide((brut_grayscale-init_grayscale),(init_grayscale))之后,添加以下代码来提取中间区域并完成统计计算:

# 提取中间区域(示例:裁剪掉四周10%的区域,取中间80%范围)
h, w = test.shape
# 可根据需求调整裁剪比例,比如改为0.2就是四周各裁20%
crop_ratio = 0.1
start_row = int(h * crop_ratio)
end_row = int(h * (1 - crop_ratio))
start_col = int(w * crop_ratio)
end_col = int(w * (1 - crop_ratio))
# 用numpy切片截取中间区域
middle_region = test[start_row:end_row, start_col:end_col]

# 基于中间区域计算Irms、均值、标准差等统计值
intensite_rms = np.sqrt(np.mean(np.square(middle_region)))
print("Intensité RMS de la zone centrale :", intensite_rms)
mean, std_dev = cv2.meanStdDev(middle_region)
print("ecart type de la zone centrale :", std_dev[0][0])
print("Moyenne de la zone centrale :", mean[0][0])
print("variance de la zone centrale :", std_dev[0][0]**2)

# 可选:可视化中间区域
plt.imshow((middle_region * 65535), cmap='gray')
plt.title("Zone centrale de l'image traitée")
plt.show()

可选:固定大小的中间区域提取

如果需要提取固定尺寸的中间区域(比如中间600×600),可以替换上述区域提取代码为:

h, w = test.shape
center_h, center_w = h // 2, w // 2
# 设置中间区域的半高和半宽,可按需调整
half_h, half_w = 300, 300
# 防止超出图像边界
start_row = max(0, center_h - half_h)
end_row = min(h, center_h + half_h)
start_col = max(0, center_w - half_w)
end_col = min(w, center_w + half_w)
middle_region = test[start_row:end_row, start_col:end_col]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:04:54