Skip to main content

Configuration

Build Configuration

Feature Flags


toml

[dependencies]
opencv = {
version = "0.88",
features = [
"opencv-4", # OpenCV 4.x support
"buildtime-bindgen", # Generate bindings at build time
"contrib", # Include contrib modules
"clang-runtime" # Runtime clang linking
]
}

Custom Build Script

1.Create build.rs:

rust

use std::env;
fn main() {
if env::var("CARGO_FEATURE_CUSTOM_OPENCV").is_ok() {
println!("cargo:rustc-link-lib=opencv_core");
println!("cargo:rustc-link-lib=opencv_imgproc");
println!("cargo:rustc-link-search=native=/usr/local/lib");
}
}

2.Runtime Configuration Environment Variables

bash

# OpenCV library paths
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
# OpenCV data directory
export OPENCV_DATA_DIR=/usr/share/opencv4
# Threading configuration
3.export OPENCV_THREAD_COUNT=4

Application Configuration


rust



use opencv::{core, Result};
fn configure_opencv() -> Result<()> {
// Set number of threads
core::set_num_threads(4)?;
// Enable optimized code paths
core::set_use_optimized(true)?;
// Configure memory usage
core::set_memory_limit(1024 * 1024 * 1024)?; // 1GB
Ok(())
}

4.Logging Configuration

rust

use opencv::core;
fn setup_logging() {
// Set log level
core::utils::logging::set_log_level(core::utils::logging::LOG_LEVEL_INFO);
// Redirect logs to custom handler
core::utils::logging::register_log_callback(|level, message| {
println!("[OpenCV {}] {}", level, message);
});
}