MCPcopy Create free account
hub / github.com/RustCV/RustCV / mat_to_u32_buffer

Function mat_to_u32_buffer

rustcv/src/highgui/mod.rs:125–141  ·  view source on GitHub ↗

--- 内部辅助函数 (保持不变) ---

(mat: &Mat)

Source from the content-addressed store, hash-verified

123
124// --- 内部辅助函数 (保持不变) ---
125fn mat_to_u32_buffer(mat: &Mat) -> Result<Vec<u32>> {
126 let pixel_count = (mat.rows * mat.cols) as usize;
127 // 提前分配并初始化,避免 debug 模式下的 capacity/push 检查开销
128 let mut buffer = vec![0u32; pixel_count];
129
130 // 使用 chunks_exact 配合 zip,编译器会自动进行 SIMD 展开和去边界检查
131 for (src_chunk, dst_pixel) in mat.data.chunks_exact(3).zip(buffer.iter_mut()) {
132 let b = src_chunk[0] as u32;
133 let g = src_chunk[1] as u32;
134 let r = src_chunk[2] as u32;
135
136 // Pack: 00 | R | G | B
137 *dst_pixel = (r << 16) | (g << 8) | b;
138 }
139
140 Ok(buffer)
141}

Callers 1

imshowFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected