theo điều này post và từ tài liệu OpenCV, tôi có thể khởi tạo và truy cập từng phần tử của Mat đa chiều.truy cập ma trận phụ của Mat đa chiều trong OpenCV
Thực ra, trước hết tôi được mã hóa bằng MATLAB và bây giờ cần chuyển đổi sang OpenCV. Ma trận MATLAB hỗ trợ truy cập ma trận phụ như: a (:,:, 3) hoặc b (:,:, 3: 5)
Điều này có thể thực hiện trong OpenCV không? theo như tôi biết, điều này có thể được thực hiện với 2D Mat. Làm thế nào về nhiều hơn mà 2D ??
Chỉnh sửa01: hơn nữa, với Mat đa chiều, các thuộc tính cols và các hàng không đủ để mô tả 3 kích thước của ma trận. Có những trường hợp có kích thước lớn hơn 3. Cách lưu trữ các thuộc tính này?
Edit02:
// create a 100x100x100 8-bit array
int sz[] = {100, 100, 100};
Mat bigCube(3, sz, CV_8U, Scalar::all(0));
tôi từ bỏ ý tưởng tiếp cận tiểu ma trận với OpenCV Mát. Có lẽ, nó không được hỗ trợ trong OpenCV. Nhưng từ mã mẫu này, hàm tạo nhận thứ nguyên thứ 3 từ 'sz'. Tài sản nào của Mat chiều thứ 3 này được chuyển đến? có lẽ trong trường hợp này, hàng = 100, cols = 100, cái kia ?? = 100 Tôi bị mất với tài liệu OpenCV
Edit03: theo dõi lớp Mat từ nguồn OpenCV tôi đã tìm thấy định nghĩa của các nhà xây dựng trong Edit02 từ mat.hpp:
inline Mat::Mat(int _dims, const int* _sz, int _type, const Scalar& _s)
: flags(0), dims(0), rows(0), cols(0), data(0), refcount(0),
datastart(0), dataend(0), datalimit(0), allocator(0), size(&rows)
{
create(_dims, _sz, _type);
*this = _s;
}
câu hỏi tiếp theo là ở đâu và làm thế nào "tạo" chức năng ở đây được xác định? => truy tìm định nghĩa Mat này trong OpenCV có thể giúp tôi sửa đổi/tùy chỉnh các tính năng của riêng mình trong Mat matrix
PS: xin lỗi nếu bài viết của tôi được viết quá lộn xộn !! Tôi là một lập trình viên mới, cố gắng giải quyết vấn đề lập trình của tôi. Plz cảm thấy tự do để sửa tôi nếu cách tiếp cận của tôi là không tốt hoặc phải đủ. Cảm ơn bạn!!
Tôi đã core.hpp để xem tất cả các khai báo của hàm tạo, bao gồm cả một đối với Mat đa chiều. Nhưng tôi không thể tìm thấy định nghĩa, ý tôi là mã hóa của hàm tạo đó, để xem thuộc tính thứ nguyên thứ ba đi tới đâu. Mã nguồn đó ở đâu ?? –
Điều đó sẽ có: /modules/core/src/matrix.cpp. Tôi đang chỉnh sửa câu trả lời của tôi liên quan đến vấn đề ban đầu của bạn bên dưới –
remi
Bạn có viết mã này không? Tôi sắp phải làm điều tương tự ... – kmac