簡體   English   中英

cv2.error: OpenCV(4.5.2).error: (-215:Assertion failed)._src:empty() in function 'cv::cvtColor'

[英]cv2.error: OpenCV(4.5.2) .error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

import cv2 #for image processing
import easygui #to open the filebox
import numpy as np #to store image
import imageio #to read image stored at particular path

import sys
import matplotlib.pyplot as plt
import os
import tkinter as tk
from tkinter import filedialog
from tkinter import *
from PIL import ImageTk, Image



top=tk.Tk()
top.geometry('400x400')
top.title('Cartoonify Your Image !')
top.configure(background='white')
label=Label(top,background='#CDCDCD', font=('calibri',20,'bold'))

def upload():
    ImagePath=easygui.fileopenbox()
    cartoonify(ImagePath)


def cartoonify(ImagePath):
    
    # read the image
    originalmage = cv2.imread(ImagePath)
    
    originalmage = cv2.cvtColor(originalmage, cv2.COLOR_BGR2RGB)
    #print(image)  # image is stored in form of numbers
cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-vi271kac\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

再次檢查圖像地址。 當圖像以任何方式未正確加載時,通常會發生這種情況。 嘗試直接給出地址; 類似“C:\\test.jpg”的東西

import cv2
im = cv2.imread("WRONG IMAGE ADDRESS.jpg", 1)
im = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY)

在此處輸入圖像描述


更新
您還可以獲取腳本的當前文件夾路徑並從中加載圖像。
想象一下你的文件結構是這樣的:

--RootProject
  |-img.jpg
  |-script.py

然后你也可以這樣做:

腳本.py

    import cv2
    import sys
    im = cv2.imread(sys.path[0]+"/img.jpg", 1)
    im = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY)

嘗試將圖像作為路徑,要小心的一件事是關於斜線。 使用\\而不是\ 您的路徑必須類似於D:\\file\\file1\\file2 檢查它是否工作打印type(cv2.imread(path)) 如果它打印<class 'numpy.ndarray'> ,那么你對 go 很好。

如果您的圖像文件路徑錯誤,可能會發生這種情況,請添加您的工作文件夾然后使用如下:

image = cv2.imread('eye_face.jpg')
type(image)

那么您的圖像類型將指示為numpy.ndarray ,如果您的圖像文件路徑錯誤,則類型將為NoneType

此錯誤是{錯誤的圖像位置}。 如果假設您在另一個文件夾中的圖像意味着這樣使用:

img=cv2.imread("../images/car.jpg",1)

這似乎是 windows 中的路徑問題。 我將它更改為這樣的完整路徑並且它有效。

文件名 = "D:\Sandbox\Github\opencv-project\Resources\Photos\cats.jpg"

我試圖從文件夾中讀取圖像並遇到同樣的問題。 我在問題所在的其中一個文件夾中有一個非圖像。

我通過添加解決了同樣的問題:

data = cv2.imread('path_to_your_image', as_grey =True)

然后嘗試將 flags = cv2.DFT_COMPLEX_OUTPUT 添加到這一行

dft = cv2.dft(np.float32('your_image'),flags = cv2.DFT_COMPLEX_OUTPUT)

這個問題有很多解決方案。

這可能是因為您的相機問題或相機驅動程序問題。 如果您使用的是任何 USB 相機,請交叉檢查其連接並確保沒有其他程序使用同一相機。

如果您的相機正在工作,那么您可能會放置錯誤的圖像路徑。 驗證圖像路徑。 此外,如果需要,請嘗試放置硬編碼路徑,例如C:\\image1.png

import cv2
im = cv2.imread("C:\\image1.png", 1)
im = cv2.cvtColor(im, cv2.COLOR_RGB2GRAY)

請檢查您為路徑提供的擴展名。 JPEG、PNG 或其他任何格式。

我遇到了同樣的問題,但是在使用 google colab vr。 3.7.1 並且我安裝了 CV 4.6.0.66,但它仍然無法正常工作。 然后我上傳了一張我要使用的圖片,之后我嘗試使用此代碼。 灰色 = cv2.cvtColor(pic, cv2.COLOR_RGB2GRAY)

后... 。_。

錯誤:OpenCV(4.6.0)/io/opencv/modules/imgproc/src/color.cpp:182:錯誤:(-215:斷言失敗)._src.empty()在function'cvtColor'

檢查您的相機是否已在設備管理器中禁用,或者更新它。

暫無
暫無

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

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