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

在Jupyter Notebook中使用OpenCV GaussianBlur函数出现断言失败错误求助

问题解决:Jupyter中OpenCV GaussianBlur报错(-215:Assertion failed) !_src.empty()

错误核心原因

你碰到的问题本质是**cv2.imread不支持读取HTTP格式路径**,http://localhost:8888/view/Pictures/Blured.jpg是Jupyter网页端的文件预览链接,不是本地文件的实际路径,导致img变量读取为空,调用GaussianBlur时触发断言错误。另外Jupyter环境下cv2.imshow也大概率无法正常弹出显示窗口。

修正步骤

1. 替换为本地图片路径

把cv2.imread的参数改成图片的本地绝对路径,或者相对路径(相对当前Jupyter Notebook所在的文件夹):

  • 绝对路径示例:"C:/Users/xxx/Pictures/Blured.jpg"
  • 相对路径示例:若Notebook和图片在同一文件夹,直接写"Blured.jpg"

2. 添加读取校验逻辑

在使用图片前先判断是否读取成功,避免后续函数直接报错。

3. 适配Jupyter的图像显示方式

用matplotlib替代cv2.imshow,因为Jupyter对OpenCV的原生窗口支持不佳。

修正后的完整代码

import cv2
import matplotlib.pyplot as plt

# 替换为你的本地图片路径
img = cv2.imread("Blured.jpg")

# 校验图片是否读取成功
if img is None:
    print("错误:无法读取图片,请检查路径是否正确")
else:
    imgBlur = cv2.GaussianBlur(img, (7,7), 0)    
    imgsharped = cv2.addWeighted(img, 2, imgBlur, -0.9, 0)
    
    # OpenCV读取的是BGR格式,转成RGB后适配matplotlib显示
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    imgsharped_rgb = cv2.cvtColor(imgsharped, cv2.COLOR_BGR2RGB)
    
    # 分栏显示原图和锐化后的图
    plt.figure(figsize=(12,6))
    plt.subplot(121)
    plt.imshow(img_rgb)
    plt.title("原图")
    plt.axis("off")
    
    plt.subplot(122)
    plt.imshow(imgsharped_rgb)
    plt.title("锐化后的图")
    plt.axis("off")
    
    plt.show()

额外注意点

  • 确保图片路径中没有中文或特殊字符,避免读取失败
  • 若用相对路径不确定位置,可通过import os; print(os.getcwd())查看Jupyter当前工作目录,把图片放到该目录下

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:42:44