открыть cv2 преобразование цветного изображения в оттенки серого - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь преобразовать цветное изображение в оттенки серого, используя библиотеку Opencv2 с python 3.7, используя сервер XAMPP, и результат в Интернете:

   no image --> -->


error   Python 3.7.0: C:\Users\Asus\AppData\Local\Programs\Python\Python37-32\python.exe
Fri Aug 24 21:58:51 2018
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 C:\xampp\htdocs\cv2\rgbtogray.py in <module>()
     17         print ("no image")
     18 
=>   19 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
     20 cv2.imshow('gray',gray)
     21 cv2.waitKey(0)
gray undefined, cv2 = <module 'cv2' from 'C:\\Users\\Asus\\AppData\\Lo...on37-32\\lib\\site-packages\\cv2.cp37-win32.pyd'>, cv2.cvtColor = <built-in function cvtColor>, img = None, cv2.COLOR_BGR2GRAY = 6
error: OpenCV(3.4.2) d:\build\opencv\opencv-3.4.2\modules\imgproc\src\color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'cv::CvtHelper<struct cv::Set<3,4,-1>,struct cv::Set<1,-1,-1>,struct cv::Set<0,2,5>,2>::CvtHelper' 
      args = ("OpenCV(3.4.2) d:\\build\\opencv\\opencv-3.4.2\\modul...et<1,-1,-1>,struct cv::Set<0,2,5>,2>::CvtHelper'\n",) 

вот код, который я выполнил, используя xampp

#!C:\Users\Asus\AppData\Local\Programs\Python\Python37-32\python.exe

print('Content-type: text/html\r\n')
print('\r\n')

import cgitb
import cv2
import numpy as np

cgitb.enable()


img = cv2.imread('C:\\xampp\\htdocs\\cv2\\color.png')
if img is None:
    print ("no image")

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('gray',gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

вот изображение, которое я хочу преобразовать

1 Ответ

0 голосов
/ 24 августа 2018

Комбинация \ и x на вашем пути действует как escape-символ, и Python считает, что загружает шестнадцатеричное значение.

Вы можете просто добавить r перед вашим путем к файлу, чтобы преобразовать его в необработанную строку, например так:

   img = cv2.imread(r'C:\xampp\htdocs\cv2\color.png')

Это не позволит \ x в \xampp действовать как escape-последовательность.

См. Здесь для справки: https://python -reference.readthedocs.io / en / latest / docs / str / escapes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...