Идентичные изображения OpenCV возвращают разные результаты - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь проанализировать набор изображений в каталоге, но работает только одно изображение. Все изображения примерно одинакового размера (3 МБ) и взяты из одного исходного изображения. Все они доступны для просмотра в GIMP и Photos, но cv2.imshow работает только с slice_0_15.jpg Что здесь происходит? Используя Python версию 3.8.3, OpenCV версии 4.2.0

for file in os.listdir("scanned_extrudate"): #go through all 18 slices in the directory
    print("Analyzing file " + str(file))
    image = cv2.imread(file)

    if image is None:
        print("Error: no image selected")

    else:
        rows,cols,_ = image.shape #dimensions of image (eg 200x300)
        print("Image: " + str(rows) + " rows, " + str(cols) + " columns")

Вывод:

Analyzing file slice_0_0.jpg
Error: no image selected
Analyzing file slice_0_1.jpg
Error: no image selected
Analyzing file slice_0_10.jpg
Error: no image selected
Analyzing file slice_0_11.jpg
Error: no image selected
Analyzing file slice_0_12.jpg
Error: no image selected
Analyzing file slice_0_13.jpg
Error: no image selected
Analyzing file slice_0_14.jpg
Error: no image selected
Analyzing file slice_0_15.jpg
Image: 19935 rows, 928 columns
Analyzing file slice_0_16.jpg
Error: no image selected
Analyzing file slice_0_17.jpg
Error: no image selected
Analyzing file slice_0_2.jpg
Error: no image selected
Analyzing file slice_0_3.jpg
Error: no image selected
Analyzing file slice_0_4.jpg
Error: no image selected
Analyzing file slice_0_5.jpg
Error: no image selected
Analyzing file slice_0_6.jpg
Error: no image selected
Analyzing file slice_0_7.jpg
Error: no image selected
Analyzing file slice_0_8.jpg
Error: no image selected
Analyzing file slice_0_9.jpg
Error: no image selected

Когда я набираю «файл *» в терминале, я получаю тот же результат для всех изображений: (разница только в размерах)

slice_0_0.jpg:  JPEG image data, JFIF standard 1.01, resolution (DPI), density 2400x2400, segment length 16, Exif Standard: [TIFF image data, little-endian, direntries=7, xresolution=98, yresolution=106, resolutionunit=2, software=GIMP 2.10.14, datetime=2020:07:10 13:34:33], progressive, precision 8, 1088x19935, frames 1

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

Попробуйте следующее:

import os

FOLDER = "scanned_extrudate"

for file in os.listdir(FOLDER): #go through all 18 slices in the directory
    print("Analyzing file " + str(file))
    image = cv2.imread(os.path.join( FOLDER, file))
0 голосов
/ 12 июля 2020

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

image = cv2.imread("/ur/directory/to/scanned_extrudate/" + file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...