Tôi đang cố chuyển đổi một mảng 2D Numpy, đại diện cho một hình ảnh đen trắng, thành một mảng OpenCV 3 kênh (tức là hình ảnh RGB).Chuyển mảng Numpy sang OpenCV Array
Dựa trên code samples và the docs Tôi đang cố gắng để làm điều này qua Python như:
import numpy as np, cv
vis = np.zeros((384, 836), np.uint32)
h,w = vis.shape
vis2 = cv.CreateMat(h, w, cv.CV_32FC3)
cv.CvtColor(vis, vis2, cv.CV_GRAY2BGR)
Tuy nhiên, các cuộc gọi đến CvtColor() là ném ngoại lệ cpp cấp sau:
OpenCV Error: Image step is wrong() in cvSetData, file /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp, line 902
terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp:902: error: (-13) in function cvSetData
Aborted
Tôi đang làm gì sai?
Từ tài liệu cho 'CvtColor'" src - Hình ảnh nguồn, không dấu 8 bit, không dấu 16 bit (CV_16UC ...) hoặc điểm nổi chính xác đơn ". Tôi nhận thấy rằng mảng numpy của bạn là 'np.uint32'. Điều này có thể giải thích 'Lỗi OpenCV: Bước hình ảnh sai() trong cvSetData'. Tôi nhận thấy các mẫu mã sử dụng một kiểu dữ liệu khác: xem 'vis = np.zeros ((tối đa (h1, h2), w1 + w2), np.uint8)'. –