bytedeco opencv是一個opencv的封裝,所有依賴都可以在maven中央庫中找到,是一個非常方便的東西。
如果你是用構建工具,那么只需要引入
<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.2</version> </dependency>
就應該可以正常使用。
因為opencv對於不同平台需要不同平台對應的編譯,所以構建項目的時候會去下載對應的編譯依賴,如果你使用gradle就會遇到這種問題
Could not resolve all dependencies for configuration ':compileClasspath'. > Could not find javacpp-presets-Windows 8.1-amd64.jar (org.bytedeco:javacpp-presets:1.2). Searched in the following locations: https://repo1.maven.org/maven2/org/bytedeco/javacpp-presets/1.2/javacpp-presets-1.2-Windows 8.1-amd64.jar
去倉庫看看,的確沒有這個文件。但是這種方式在maven中工作。
那是因為默認的解析規則是javacpp-presets-${os.name}-${os.arch}.jar,而maven和gradle中的解析有一些不同之處,所以最簡單的處理辦法是自己手動引入對應的編譯依賴
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.1.0-1.2' compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.1.0-1.2', classifier:'windows-x86_64'
然后去掉默認的依賴解析
configurations { all*.exclude group: 'org.bytedeco', module: 'javacpp-presets' }
如果不想硬編碼classifier,可以在gradle中加上對應的判斷即可。