Hiển thị ảnh IplImage lên Picturebox OpenCV C++

Em chào các anh ạ.
Em có làm 1 project về xử lý ảnh biển số xe, nhưng sau khi xử lý ra được ảnh, bây giờ em muốn hiển thị ảnh plate tức là ảnh biển số đã đc cắt ra từ ảnh gốc lên picturebox nhưng ko hiển thị được. Em xin các a chỉ em cách để hiển thị nó len winform với. Em cảm ơn ạ

Chuyển đổi IplImage sang Bitmap.

ảnh plate của em là ảnh đã đc cắt ra từ biển số trong class platefinder . a có thể chỉ rõ em hiểu đc k ạ :frowning:

IplImage mang thông tin ảnh. Từ thông tin của IplImage tạo ra một Bitmap rồi hiển thị Bitmap này ra PixtureBox.

Để tạo ra Bitmap thì gọi constructor của Bitmap như trên hình và truyền tham số.

width = IplImage.width;
height = IplImage.height;
stride = IplImage.widhtstep ( =IplImage.width * IplImage.channels).
format : chỗ này chọn 24bit với IplImage 3 kênh RGB hoặc 32 bit với IplImage 4 kênh
scan0 = IplImage.data (hay IplImage.imageData hay gì đó, nó là con trỏ dữ liệu ảnh)

Chú ý 1 điều, IplImage.widthstep trong opencv thường chẫn bằng tích IplImage.width*IplImage.channels, nhưng stride của Bitmap không phải lúc nào cũng như vậy.
Nếu 2 cái lệch nhau sẽ sinh lỗi. Để giải quyết trong trường hợp lỗi thì tạo Bitmap với kích thước yêu cầu trước, sau đó dùng BitmapData để chỉ Stride rồi copy dữ liêu từ IplImage qua Bitmap.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?