@vlad1753

Как правильно указать путь к файлу?

Есть функция:
def handle(path, save):
    img = cv2.imread(r'C:\progs\ocr3\gdz\form2\ukrainian\ГДЗ Українська мова 2 клас.Н.В Гавриш, Т.С. Маркотенко\numbers\1.jpg')

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

    img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

    thresh = 127   
    im_b = cv2.threshold(img_gray, thresh, 255, cv2.THRESH_BINARY)[1]

    contours, hierarchy = cv2.findContours(image = im_b, mode = cv2.RETR_TREE, method = cv2.CHAIN_APPROX_SIMPLE)

    contours = sorted(contours, key = cv2.contourArea, reverse= True)

    mask = np.ones(img.shape[:2], np.uint8)
    mask.fill(255)
    cv2.drawContours(mask, contours, contourIdx =0 , color =0, thickness = -1)
    new_img = cv2.add(im_b, mask)
    cv2.imwrite(save,new_img)


Она удаляет фон с изображения. Проблема в том, что я не могу открыть это изображение...
Вот эта строчка кода:
img = cv2.imread(r'C:\progs\ocr3\gdz\form2\ukrainian\ГДЗ Українська мова 2 клас.Н.В Гавриш, Т.С. Маркотенко\numbers\1.jpg')

Если изменить имя файла:
img = cv2.imread(r'C:\progs\ocr3\gdz\form2\ukrainian\1\numbers\1.jpg')

То всё открывается отлично.

Ошибка:

Traceback (most recent call last):
File "c:\progs\ocr3\main.py", line 30, in
handle('images/p4ex1.jpg', 'masked/mas112312323.jpg')
File "c:\progs\ocr3\main.py", line 10, in handle
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-wvn_it83\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'


Буду рад помощи.
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 2
@galaxy
Не умеет оно файлы с не-ASCII именами под виндой открывать, забейте. Открывайте средствами питона. Пример из интернета:
f = open(path, "rb")
chunk = f.read()
chunk_arr = np.frombuffer(chunk, dtype=np.uint8)
img = cv2.imdecode(chunk_arr, cv2.IMREAD_COLOR)
Ответ написан
@vlad1753 Автор вопроса
Спасибо огромное!
Но возникла ещё одна проблема...

Вот пример имени файлов, которые сохраняются: Lesson 1 A Year Full of Holidays Р С–Рє, наповнений святами(2).jpg

На месте "каракуль" должен быть украинский язык.
Наверное, проблема в кодировке. Подскажите пожалуйста
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы