2016-03-28 26 views
0

Bir fotoğraf makinesinde okuduğum bir resmin piksellerini değiştiriyorum ve imshow()'u kullanarak ekranda görmeye çalışıyorum, ancak her seferinde bir siyah ekran elde ediyorum. Ben (cv2.imshow() argüman biçimi?

Bu siyah ekran verir) imread() kullanılarak tekrar okumak sonra imwrite() ve kullanma (ilk kaydetmek eğer çalıştığını tek yoldur: -

def foo(im): 
    cv2.show(im) 
    cv2.waitKey(10) 

ret_im = some_fn(some_image) 
foo(ret_im) 

, bu doğru görüntü veren Oysa: . -

orijinal görüntü de bir cazibe gibi çalışır
def foo(im): 
    cv2.show(im) 
    cv2.waitKey(10) 

ret_im = some_fn(some_image) 
cv2.write("some_name.png",ret_im) 
ret_im = cv2.read("some_name.png") 
foo(ret_im) 

Örn:

def foo(im): 
    cv2.show(im) 
    cv2.waitKey(10) 

foo(some_image) 

Sanırım, bu giriş veri formatıyla ilgili bir şey var. Resmi değiştirerek some_image türüyle eşleştirmeyi denedim.

Ben kullanarak diziyi numpy dönüştürmek, burada ben liste olarak ve sonunda onu tedavi görüntüyü değiştirerek olduğumu belirtmek zorundadır:

def foo(im): 
    cv2.show(im) 
    cv2.waitKey(10) 

ret_im = numpy.array(some_fn(some_image)) 
foo(ret_im) 
: Bu çalışmaya olarak düşünülebilir, Yani numpy.array(list_name)

cevap

0

Görüntü formatı "uint8" sayıları gerekli. Soruna neden olan int32 sayılarını kullanıyordum.