OpenCV python: cv2.split () - vs schneiden während der erste Kanal in der BGR-Bild

Möchte ich, um nur den ersten Kanal (Blau) in der BGR-Bild und dann auf Festplatte zu speichern.
Wenn ich mit cv2.split() ist alles ok

>>> import cv2
>>> a = cv2.imread("/home/s18/theVIDEO/1_resized.jpg")
>>> b = cv2.split(a)[0]
>>> type(b)
<type 'numpy.ndarray'>                                                                                              
>>> b                                                                                              
array([[223, 222, 224, ...,  88,  80,  71],
[222, 221, 225, ...,  84,  78,  67],
[220, 221, 225, ...,  77,  71,  62],
..., 
[163, 178, 182, ..., 107, 107, 106],
[148, 170, 186, ..., 104, 104, 103],
[156, 181, 201, ..., 102, 101, 100]], dtype=uint8)
>>> b.shape
(600, 800)
>>> cv2.imwrite("/home/s18/theVIDEO/1_resized2.jpg", b)
True

Aber während der Verwendung ähnlich slicing-Vorgang bekomme ich Fehler

>>> c = a[:,:,0]
>>> c
>>> type(c)
<type 'numpy.ndarray'>                                                                                              
array([[223, 222, 224, ...,  88,  80,  71],
[222, 221, 225, ...,  84,  78,  67],
[220, 221, 225, ...,  77,  71,  62],
..., 
[163, 178, 182, ..., 107, 107, 106],
[148, 170, 186, ..., 104, 104, 103],
[156, 181, 201, ..., 102, 101, 100]], dtype=uint8)
>>> c.shape
(600, 800)
>>> cv2.imwrite("/home/s18/theVIDEO/1_resized3.jpg", c)
False

Elemente in arrays b und c sind gleich, die Abmessungen und die Klassen sind auch ähnlich. Warum konnte ich nicht einfach aufschneiden, um einen der Kanäle?

InformationsquelleAutor s18 | 2011-12-01
Schreibe einen Kommentar