簡體   English   中英

thresh.cpp:1676: 錯誤: (-215:Assertion failed) src.type() == CV_8UC1 in function 'cv::adaptiveThreshold'

[英]thresh.cpp:1676: error: (-215:Assertion failed) src.type() == CV_8UC1 in function 'cv::adaptiveThreshold'

自適應閾值的 OpenCV 學習本教程,復制了確切的代碼

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
img = cv.imread('sudoku.jpg',0)
img = cv.medianBlur(img,5)
ret,th1 = cv.threshold(img,127,255,cv.THRESH_BINARY)
th2 = cv.adaptiveThreshold(img,255,cv.ADAPTIVE_THRESH_MEAN_C,\
            cv.THRESH_BINARY,11,2)
th3 = cv.adaptiveThreshold(img,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,\
            cv.THRESH_BINARY,11,2)
titles = ['Original Image', 'Global Thresholding (v = 127)',
            'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']
images = [img, th1, th2, th3]
for i in range(4):
    plt.subplot(2,2,i+1),plt.imshow(images[i],'gray')
    plt.title(titles[i])
    plt.xticks([]),plt.yticks([])
plt.show()

OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-m8us58q4\opencv\modules\imgproc\src\thresh.cpp:1676:錯誤:(-215:斷言失敗) src.type() == CV_8UC1 在 function 'cv::adaptiveThreshold'
文件“C:\Users\me\Documents\test\AdaptiveThresholding.py”,第 8 行,在 th2 = cv.adaptiveThreshold(img,255,cv.ADAPTIVE_THRESH_MEAN_C,\

opencv-python 4.5.2.52

Python 3.9.5

在此處輸入圖像描述

這不是確切的代碼。 確切的代碼讀取灰度 PNG。 你有一個彩色 JPG。 這就是區別。 自適應閾值需要灰度圖像。 所以,添加:

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

將您所需的圖像轉換為灰度 bcz 自適應閾值需要灰度圖像 例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM