Skimage преобразовать в оттенки серого, в результате чего черное изображение - PullRequest
0 голосов
/ 07 февраля 2020

Я очищаю изображения и пытаюсь преобразовать их в оттенки серого. Но если я просмотрю изображение. Это просто черный. Может кто-нибудь сказать мне, что не так с этим? Спасибо

Вот мой фрагмент

import cv2
from skimage import io
from skimage import data
from skimage.color import rgb2gray

#...some codes

for i in elements:
    try:
        i.click()
    except ElementClickInterceptedException:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        i.click()
    url = driver.find_element_by_xpath('//*[@class="slider-list"]/div/img').get_attribute('src').replace('height=600','height=1200').replace('quality=70','quality=100')
    print (url)
    name = driver.find_element_by_xpath('//*[@class="slider-list"]/div/img').get_attribute('alt') + '.jpg'

    print (name)
    img = io.imread(url)
    new = rgb2gray(img)
    cv2.imwrite(os.path.join(fldrnm, name), new)

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020
Import cv2
Img = cv2.inread(filepath)
Img = cv2.cvtColor(Img, cv2.COLOR_RGB2GRAY)
cv2.imwrite(path,img)
0 голосов
/ 10 февраля 2020

Первоначальная причина проблемы заключается в том, что skimage.color.rgb2gray будет изменять масштаб изображения до значений с плавающей запятой в [0, 1], даже если исходное изображение содержит значения uint8 в [0, 255]. Это сделано для сохранения точности во время длинных последовательностей операций. Можно использовать skimage.io.imsave вместо cv2.imwrite в исходном вопросе, а также skimage.util.img_as_ubyte перед сохранением.

Для получения более подробной информации см. Эту страницу:

https://scikit-image.org/docs/dev/user_guide/data_types.html

...