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

使用Python进行图像阈值处理 清晰显示并提取图像内IP地址

IP图像清晰化与提取方案

你之前用全局Otsu阈值处理效果差,核心原因是IP区域文字和背景的对比度局部差异大,还有印刷网点、背景杂色干扰,全局阈值无法适配这种非均匀亮度的场景,按以下流程处理即可:

  • 先裁剪感兴趣区域(ROI):不要对全图做处理,先定位United States文字的位置,截取其上方包含IP地址的小块区域,能过滤掉绝大多数无关背景干扰。
  • 换用局部自适应阈值:拆分BGR通道取蓝色通道(对图中浅印的深色IP文字区分度远高于普通灰度图),使用自适应高斯阈值替代全局阈值,按邻域像素亮度动态计算阈值,适配局部明暗差。
  • 形态学操作去噪:阈值处理后用开运算(先腐蚀后膨胀)过滤细碎的背景噪点,同时尽可能保留IP文字的笔画完整性。
  • 可选OCR提取:预处理完成后如果需要直接提取IP,调用Tesseract做文字识别即可,限定识别字符集为数字和小数点,能大幅提升识别准确率。

可直接运行的参考代码

import cv2
import numpy as np
# 若需要OCR提取功能请先安装pytesseract和Tesseract引擎
try:
    import pytesseract
    # Windows环境下如果没加系统环境变量,需要手动指定tesseract.exe路径
    # pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    ocr_enable = True
except ImportError:
    ocr_enable = False

# 读取原始图像
img = cv2.imread('Sample.jpg')
img_h, img_w = img.shape[:2]

# 裁剪IP所在的ROI区域,坐标可根据你的实际图像位置调整
# 经验值:IP位于United States上方20~60像素区间,y轴范围可自行微调
roi = img[int(img_h*0.32):int(img_h*0.48), int(img_w*0.2):int(img_w*0.8)]

# 提取蓝色通道,对浅深色文字的对比度最优
b_chan = cv2.split(roi)[0]

# 自适应高斯阈值处理,替代全局Otsu
thresh = cv2.adaptiveThreshold(
    b_chan,
    255,
    cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
    cv2.THRESH_BINARY_INV,
    blockSize=15,  # 邻域计算块大小,需为奇数,根据文字粗细调整
    C=7  # 阈值偏移量,数值越大对浅噪点的抑制越强
)

# 形态学开运算去除细碎噪点
kernel = np.ones((2,2), np.uint8)
clean_img = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1)

# 反色回黑字白底的常规显示效果,保存清晰化结果
final_img = 255 - clean_img
cv2.imwrite('IP_clear.png', final_img)

# OCR识别IP地址
if ocr_enable:
    # 限定识别字符仅为数字和小数点,排除其他字符干扰
    ocr_config = r'--oem 3 --psm 6 -c tessedit_char_whitelist=0123456789.'
    ip_res = pytesseract.image_to_string(final_img, config=ocr_config).strip()
    print(f"识别提取的IP地址:{ip_res}")

参数调整说明

如果输出效果不符合预期,对应调整这几个参数即可:

  • 自适应阈值的blockSize:文字笔画越粗,数值调得越大,必须为奇数
  • 自适应阈值的C值:背景残留噪点多就增大数值,IP文字太淡出现断笔就减小数值
  • 形态学核大小:噪点过多可把核尺寸从(2,2)改为(3,3),文字断笔明显就换用闭运算或者缩小核尺寸

测试样例图

示例图像

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:57:16