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

Python无法提取TradingView截图中的Buy/Sell信号求解决

提取TradingView图表Buy/Sell信号的故障排查与修复方案

一、先确认基础环境配置

  • 检查Tesseract OCR引擎路径是否正确配置,Windows系统需在代码中指定路径:
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    
    Linux/Mac系统需确保tesseract已加入环境变量,或直接指定安装路径。
  • 用pip list确认依赖包版本:pyautogui、Pillow(注意不是PIL)、pytesseract、opencv-python需正常安装且版本兼容。

二、优化图像预处理流程

TradingView信号区域通常是深色背景+浅色文字,需针对性处理:

  1. 精准裁剪信号区域:
    确保裁剪范围只包含Buy/Sell文字,避免无关区域干扰:
    screen = pyautogui.screenshot()
    # 替换为你实际的信号区域坐标(x1,y1为左上角,x2,y2为右下角)
    signal_img = screen.crop((150, 300, 400, 350))
    
  2. 灰度化+自适应二值化:
    相比固定阈值,自适应阈值更适配不同光照下的文字:
    import cv2
    import numpy as np
    
    # 转OpenCV格式
    img_cv = cv2.cvtColor(np.array(signal_img), cv2.COLOR_RGB2BGR)
    # 灰度化
    gray = cv2.cvtColor(img_cv, cv2.COLOR_BGR2GRAY)
    # 自适应二值化(反转颜色,让文字为白色背景为黑色)
    binary = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
    
  3. 去噪处理:
    用中值滤波消除小噪点:
    denoised_img = cv2.medianBlur(binary, 3)
    

三、调整Tesseract识别参数

针对Buy/Sell这类短文本,限制识别范围并优化分割模式:

# 配置参数:oem 3使用默认引擎,psm 8假设文字为单个词,白名单限制仅识别Buy/Sell
custom_config = r'--oem 3 --psm 8 -c tessedit_char_whitelist=BuySell'
signal_text = pytesseract.image_to_string(denoised_img, config=custom_config).strip()
print("识别结果:", signal_text)

四、调试技巧

  • 保存每一步预处理后的图像,比如cv2.imwrite('debug_denoised.png', denoised_img),直观检查哪一步导致文字模糊或丢失。
  • 手动截取信号区域的图片,用Tesseract命令行测试:
    tesseract test_signal.png output --oem 3 --psm 8 -c tessedit_char_whitelist=BuySell
    
    确认引擎本身能识别该文字,再排查代码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:36:04