Imshow не отображать изображение, извлеченное из ndarray. Нет ошибок - PullRequest
0 голосов
/ 12 ноября 2018

Мне нужно реализовать лайф игру как. Я работаю с Pyzo и

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) on Windows (64 bits).
This is the Pyzo interpreter with integrated event loop for PYQT5.

Для этого мне бы хотелось, чтобы карта была картой мира, а не квадратом. Таким образом, я получаю монохромное изображение. Я открываю это, я преобразовываю это в массив. Но я не могу отобразить это. Там нет ошибки, сообщение журнала, которое я установил в коде, кажется, показывает, что все в порядке, но окно с изображением не отображается. Я также попытался с изображением RGBA без большего успеха Я также попытался после перезагрузки моего компьютера.

Изображение в формате BMP, сохраненное краской в ​​растровом монохромном режиме. Я присоединился к нему Спасибо за любые идеи, чтобы решить эту проблему.

Вот сообщения из моего кода

format: BMP   mode: 1   palette: None
The image is 993 x 579
ok
[[1 1 1 ... 1 1 1]
 [1 0 0 ... 0 0 1]
 [1 0 0 ... 0 0 1]
 ...
 [1 0 0 ... 0 0 1]
 [1 0 0 ... 0 0 1]
[1 1 1 ... 1 1 1]]
0
(579, 993)
<class 'numpy.ndarray'>
<class 'numpy.uint8'>
should be displayed 

Вот код

def Load_image(filename):
#    try:
    img = Image.open(filename) 
    print ('format: %s   mode: %s   palette: %s' % (img.format,img.mode,img.palette))
    print ('The image is %d x %d' % img.size)
    return img
 #    except:
    print ("Unable to open %s" % filename)
    return -1

def Img2Array(img):
    # BytePerPixel = {'1': 1, 'RGB': 2, 'RGBA' : 4 }# 1: B&W, 3: RGB, 4: RGBA (A=Alpha : transparency)
    # result = numpy.array(img.getdata(), numpy.uint8).reshape(img.size[1], img.size[0], BytePerPixel.get(img.mode))
    result = numpy.array(img,dtype='int8')
    print (result)
    print(result[200,200])
    print(result.shape)
    print (type(result))
    print (type(result[200,200]))

    test = plt.imshow(result)
    print ("should be displayed")
    return result

fichiercarte = "C:\\Users\\mld\\Desktop\\python\\world-map1.bmp"
carte = Load_image(fichiercarte)
if (carte != None): 
   print ("ok")
ndArrayCarteDuMonde = Img2Array (carte)

Монохромная карта мира

...