Sao chép dynamic array 2d sang Mat của opencv

Hello
Mình có 1 mảng động 2 chiều lưu dữ liệu ảnh, mỗi điểm ảnh có 3 kênh, vì thế 1 ảnh 3x3 thì mảng này sẽ có cỡ là 3 hàng 9 cột
Mình muốn đẩy mảng này qua Mat của opencv để xem kết quả
Mình chuyển như sau

void setPixel8UC3(Matrix &mat, Mat &img) {
	uchar *row_ptr, *pixel;
	unsigned int k;
	for (unsigned int i = 0; i < img.rows; i++){
		row_ptr = img.ptr<uchar>(i);
		k = 0;
		for (unsigned int j = 0; j < img.cols; j++){
			pixel = row_ptr;
			pixel[0] = mat[i][k + 0]; // b
			pixel[1] = mat[i][k + 1]; // r
			pixel[2] = mat[i][k + 2]; // g
			row_ptr += 3;
			k += 3;
		}
	}
}

thì bị lỗi như thế này

Mình đoán là lỗi về bộ nhớ mà không thấy bug đâu :smile:
Thank you

trong C++ operator[] ko có nhận 2 args, chắc từ C# mới sang hả @_@

sửa lại là mat[i][k + 0]

e viết nhầm, nhưng lỗi không phải ở đó :smile:

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