您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何用opencv-rust實現(xiàn)Hello World”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何用opencv-rust實現(xiàn)Hello World”吧!
$ sudo apt install clang -y $ sudo apt install libclang-dev -y // 首先安裝好opencv $ opencv_version 4.5.1
Cargo.toml
opencv = {version = "0.52", default-features = false, features = ["opencv-34", "buildtime-bindgen"]}
main.rs
運行不通過,需要安裝一個微軟的工具——vcpkg
$ git clone https://github.com/microsoft/vcpkg $ ./vcpkg/bootstrap-vcpkg.sh $ sudo cp vcpkg /usr/bin $ vcpkg install boost:x64-linux $ export VCPKG_ROOT=/usr/local/vcpkg $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDAROOT/lib64:/usr/lib/x86_64-linux-gnu:/usr/local/lib $ export export PKG_CONFIG_PATH=/usr/local/vcpkg/installed/x64-linux/lib/pkgconfig/:/usr/share/pkgconfig/:/usr/local/lib/pkgconfig/
遇到一個奇葩問題
Error: "Failed to find OpenCV package using probes: environment, pkg_config, vcpkg_cmake, vcpkg, cmake"
找遍了google、baidu、bing都沒有找到原因,后來應(yīng)驗我常說的俗語“當(dāng)你搜索不到有關(guān)這個問題的任何記錄的時候,就是你自己的問題?!?/p>
我試著執(zhí)行了一下下面的語句
$ pkg-config --modversion opencv 3.2.0
大家還記得我在Cargo.toml里面是怎么定義的吧?
opencv = {version = "0.52", default-features = false, features = ["opencv-34", "buildtime-bindgen"]}
我改成
opencv = {version = "0.52", default-features = false, features = ["opencv-32", "buildtime-bindgen"]}
這個問題解決了,但是依然編譯不過,這個時候出現(xiàn)的都是各種語法錯誤,看來我得把版本升到3.4.0。
后來發(fā)現(xiàn)是烏龍了,使用opencv-32
沒有問題,是因為原來程序里面需要一個圖片,我沒有放在當(dāng)前路徑下。
最后編譯的過程:
$ RUST_BACKTRACE=full cargo build -vv
但是video依然不行,我還得努力升級opencv,必須是3.4才可以。
$ sudo apt-get purge libopencv* python-opencv $ sudo apt-get install libopencv* python-opencv $ pip3 uninstall opencv-python-headless
安裝opencv_3.4.14
$ sudo apt-get install build-essential $ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev $ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev $ git clone https://github.com/opencv/opencv.git $ cd opencv $ mkdir build $ cd build $ sudo cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D CMAKE_LIBRARY_PATH=/usr/local/cuda-11.0/lib64/stubs -D CUDA_CUDA_LIBRARY=/usr/local/cuda-11.0/lib64/stubs/libcuda.so .. $ sudo make -j8 $ sudo make install
https://github.com/opencv/opencv/tree/3.4.14 去這里下載一個zip包 安裝方式同上 最后這個成功了
:tada:tada:tada:tada:tada:tada:tada:tada:tada:tada:tada:::::::::::
下面是一個簡單的例子
Cargo.toml
opencv = {version = "0.52", default-features = false, features = ["opencv-34", "buildtime-bindgen"]}
use opencv::{ highgui, imgcodecs, Result, }; fn main() -> Result<()> { let image = imgcodecs::imread("lena.jpg",imgcodecs::IMREAD_ANYCOLOR)?; highgui::named_window("hello opencv!", 0)?; highgui::imshow("hello opencv!", &image)?; highgui::wait_key(10000)?; Ok(()) }
$ RUST_BACKTRACE=full cargo build -vv
大成功。
到此,相信大家對“如何用opencv-rust實現(xiàn)Hello World”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。