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?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es stellt sich heraus, OK, wenn Sie nicht das slice direkt, aber dem kopieren der Inhalte statt