Tôi đã tìm kiếm các câu hỏi tương tự, nhưng không tìm thấy bất kỳ điều gì hữu ích vì hầu hết các giải pháp đều sử dụng các phiên bản OpenCV cũ hơn.Làm thế nào để chuyển đổi một mảng numpy python sang một hình ảnh RGB với Opencv 2.4?
Tôi có một mảng hình khối 3D, và tôi muốn hiển thị và/hoặc lưu nó dưới dạng hình ảnh BGR bằng cách sử dụng OpenCV (cv2).
Như một ví dụ ngắn, giả sử tôi có:
import numpy, cv2
b = numpy.zeros([5,5,3])
b[:,:,0] = numpy.ones([5,5])*64
b[:,:,1] = numpy.ones([5,5])*128
b[:,:,2] = numpy.ones([5,5])*192
Những gì tôi muốn làm là lưu và hiển thị b như một hình ảnh màu sắc tương tự như:
cv2.imwrite('color_img.jpg', b)
cv2.imshow('Color image', b)
cv2.waitKey(0)
cv2.destroyAllWindows()
này không hoạt động , có lẽ vì kiểu dữ liệu của b là không chính xác, nhưng sau khi tìm kiếm đáng kể, tôi không thể tìm ra cách thay đổi nó thành đúng. Nếu bạn có thể cung cấp bất kỳ con trỏ, nó sẽ được đánh giá rất nhiều!
Cảm ơn @beaker bình luận! Tuy nhiên, vấn đề trong câu hỏi đó là poster đã quên một đối số trong 'imshow()'. Vấn đề của tôi là 'imshow' /' imwrite' sẽ không lấy mảng numpy như đã tạo ở trên. – jmanring220
Bạn có muốn lưu nó dưới dạng 'BGR' hoặc' RGB' không? Tiêu đề và câu hỏi có cả hai. – jmunsch
@ jmanring220 Có, nhưng các câu trả lời vẫn cho thấy cách chuyển đổi mảng numpy thành mat. – beaker