【问题标题】:Python thresholding: error: (-215:Assertion failed) !_src0.empty() in function 'cv::medianBlur'Python阈值:错误:(-215:断言失败)!_src0.empty()在函数'cv :: medianBlur'中
【发布时间】:2021-11-18 19:09:40
【问题描述】:

我想对 zip 文件中的所有图像执行自适应阈值处理。我不确定为什么会收到 (-215:Assertion failed) !_src0.empty() in function 'cv::medianBlur' 错误。

from zipfile import ZipFile
import os
import cv2

第 1 步:我将所有图片上传并提取到 image_file

file = "C:/Users/User/Downloads/cyc001_reg002.zip"
image_file = "C:/Users/User/Downloads/images"

# Read image arrays from image files
with ZipFile(file, 'r') as z:
    z.extractall(image_file)

for i in os.listdir(image_file):
    img = cv2.imread(os.path.join(image_file, i))

第 2 步:我将图像转换为 8 位。

img = cv2.convertScaleAbs(img)
img = cv2.medianBlur(img, 5)

第 3 步:我执行了自适应阈值处理。

ret, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
th2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
th3 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)

追溯:

> Traceback (most recent call last):   File
> "C:/Users/User/PycharmProjects/CODEX/main.py", line 26, in <module>
>     img = cv2.medianBlur(img, 5) cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-q3d_8t8e\opencv\modules\imgproc\src\median_blur.dispatch.cpp:283:
> error: (-215:Assertion failed) !_src0.empty() in function
> 'cv::medianBlur'

【问题讨论】:

  • 能不能把img的名字打印出来,看看这个图片是否真的存在于image_file文件夹中?

标签: python image image-processing computer-vision


【解决方案1】:

我试用了您的代码。似乎自适应阈值操作只能在灰度图像中进行。当我在 rbg 中打开图像时,我得到了同样的错误。但在灰度图像中效果很好。

尝试将图像转换为灰度。 :)

OpenCV 具有执行此操作的内置函数,即:

加载图片时:

gray = cv2.imread('imageName.jpg', cv2.IMREAD_GRAYSCALE)

或者当已经加载时:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

这使用了此处解释的通道组合:https://docs.opencv.org/3.4.15/de/d25/imgproc_color_conversions.html

如果您只想使用您选择的一个频道,请尝试这样做

blueChannel  = img[:,:,0]
greenChannel = img[:,:,1]
redChannel   = img[:,:,2]

请记住,如果您使用 openCV,通道的顺序是 gbr 而不是 rgb

【讨论】:

    猜你喜欢
    • 2021-06-30
    • 1970-01-01
    • 2021-09-10
    • 2022-10-15
    • 1970-01-01
    • 2019-05-18
    • 2021-10-29
    • 2021-02-23
    • 1970-01-01
    相关资源
    最近更新 更多