Raspberry Pi-3 OpenCV C++//Python Kurulumu
Hangi Raspberry Pi İşletimi? Rasbian Jessie
Hangi Programlama Dilleri için? Python ve C++
Daha Önceki OpenCV Kurulumlarını Kaldırma
sudo apt-get remove libopencv* sudo apt-get autoremoveKurulum için Ön Koşullar:
Sistemin güncellenmesi:
sudo apt-get update sudo apt-get upgrade sudo rpi-update sudo rebootEğer daha önce güncelleme yapmadıysanız bu işlemler biraz zaman alabilir. Ama sonuçta güncel bir sistem güvenlik ve kararsızlık açıklıklarından arınmış demektir.
Geliştirici Araçlarının Kurulması:
sudo apt-get install build-essential cmake cmake-curses-gui pkg-configKütüphanelerin Kurulması: (Kütüphane içeriklerini kendi ihtiyaçlarınıza göre düzenleyebilirsiniz.)
sudo apt-get install \ libjpeg-dev \ libtiff5-dev \ libjasper-dev \ libpng12-dev \ libavcodec-dev \ libavformat-dev \ libswscale-dev \ libeigen3-dev \ libxvidcore-dev \ libx264-dev \ libgtk2.0-devEk Kütüphaneler:
sudo apt-get install libatlas-base-dev gfortran
Python Kurulumu:Raspbian Jessie üzerinde Python2 ve Python3 versiyonları zaten kurulu durumda biz OpenCV 3.2.0 ı her iki Python için kurmuş olacağız.
Python-dev ve numpy Kurulumu:
sudo apt-get install python2.7-dev python2-numpy sudo apt-get install python3-dev python3-numpy
Şimdi sırada OpenCV'nin indirilmesi ve yüklenilmesi işleminde:
OpenCV İndirme İşlemi:
sudo mount /dev/your-dev-name /home mkdir /home cd /home wget https://github.com/opencv/opencv/archive/3.2.0.zip -O opencv_source.zip wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip -O opencv_contrib.zipSon iki satırdaki /3.2.0 ifadesi bizim OpenCV sürümümüzü gösteriyor. Eğer siz güncellemeyi yaparken yeni bir versiyon yayınlanmış ise sadece rakamları değiştirmeniz yeterli olacaktır.
Unzip İşlemi:
cd /home unzip opencv_source.zip unzip opencv_contrib.zipOpenCV Kurulum İşlemi:
OpenCV 3.2 yi Python2, Python3 ve C++ için kurarken CMake(text based user interface) kullanmamız gerekmektedir.
Çalışılacak Konumun Oluşturulması:
cd /home mkdir build cd buildOpenCV'nin İhtiyaçlara Göre Konfigürasyonu:
Bu ayarlamaları kendi ihtiyaçlarınıza göre şekilledirebilirsiniz. Ben Debug ve Test versiyonlarını kapattım. Çünkü Raspberry Pi üzerinde ihtiyaç duymadım. Ancak bilgisayar kurulumu yaparken kurmadığım ama performansa kattı sağladığı için NEON optimizasyonunu açık halde konfigurasyon yaptım.
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_WITH_DEBUG_INFO=OFF \ -D BUILD_DOCS=OFF \ -D BUILD_EXAMPLES=OFF \ -D BUILD_TESTS=OFF \ -D BUILD_opencv_ts=OFF \ -D BUILD_PERF_TESTS=OFF \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules \ -D ENABLE_NEON=ON \ -D WITH_LIBV4L=ON \ ../Cmake konfigurasyonu birkaç dakika sonra bitecektir ve şöyle bir uyarı görmeniz lazım:
.....
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/usbmem/opencv/opencv-3.2.0/build
Eğer "Generating done" ifadesini görmüyorsanız. Birşeyler ters gitmiş demektir. Hata mesajını kontrol edip çözebilirsiniz. Eğer yine halledemezseniz bana mesaj atmaktan çekinmeyin.Cmake TextGUI Gözden Geçirme:
Eğer hata mesajı aldıysanız, aşağıdaki listeyi kontrol edin ve gerekli düzenlemeleri yapın, hata mesajı almadıysanız bu adımı atlayabilirsiniz
$ ccmake ../ Page 1 of .. ANT_EXECUTABLE ANT_EXECUTABLE-NOTFOUND BUILD_CUDA_STUBS OFF BUILD_DOCS OFF BUILD_EXAMPLES OFF BUILD_JASPER ON BUILD_JPEG ON BUILD_LIBPROTOBUF_FROM_SOURCES OFF BUILD_OPENEXR OFF ... more options here .... Press [enter] to edit option Press [c] to configure Press [h] for help Press [q] to quit without generating Press [t] to toggle advanced mode (Currently Off)OpenCV'yi Çalıştırma:
make -j4Compile işlemi biraz zaman alabilir. Bu arada kahvenizi alıp kitap okuyabilirsiniz.. İşlem bittikten sonra:
[100%] Built target ...Şimdi Kelimenin Tam Anlamı ile Yükleme İşlemi Yapıyoruz:
sudo make install sudo ldconfigTebrikler Raspberry Pi görüntü işleme için hazır.
/usr/local/lib/libcv* /usr/local/lib/python2.7/dist-packages/cv* /usr/local/lib/python3.4/dist-packages/cv* /usr/local/include/opencv2 /usr/local/bin/opencv_* /usr/local/share/OpenCV/Yüklemeyi Test
Python2 ve Python3 için:
Terminal üzerinde aşağıdaki komutlar ile aynı çıktıyı almanız lazım
$ python3 Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> print (cv2.__version__) 3.2.0 >>>C++ kurulumunu Test etmek için:
Yeni bir boş text dosyası oluşturun. Adını resizing.cpp yapın.
#include "iostream"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/core/core.hpp"
using namespace std;
using namespace cv;
// this function represents the size of the image for comparing
void printsize(Mat &,Mat &);
int main()
{
// firstly read and show an image
Mat image,resized;
image = imread(".../mirror.jpg",1); // address of the image in you computer
namedWindow("Display image",1);
imshow("Display image",image);
// resizing the input image
resize(image, resized, Size(), 0.5, 0.5, 1); // third parameter represents the output size
namedWindow("Display resized image", 1);
imshow("Display resized image", resized);
// to check the resizing
printsize(image,resized);
waitKey(0);
return 0;
}
void printsize(Mat &image, Mat &resized) {
int r1, c1, r2, c2;
r1 = image.rows;
c1 = image.cols;
r2 = resized.rows;
c2 = resized.cols;
cout << r1 << " " << c1 << endl;
cout << r2 << " " << c2 << endl;
}
Yukarıdaki kod bloğunu boş text dosyasına kopyalayın ve terminalde:g++ $(pkg-config --libs --cflags opencv) -o resizing resizing.cppKomutu ile çalıştırın. Text dosyanızın olduğu klasörde yeni bir dosyanın oluşturulduğunu göreceksiniz. Çift tıklayıp çalıştır dediğiniz zaman resmin resize edildiğini göreceksiniz.
Merhaba,
YanıtlaSilRaspberry 3 B modelinde build yapmaya çalışırken %58 civarında cihaz takılıyor ve kendini asla toparlamıyor.
Eksik bir dosya mı var yoksa cihaz fazla yüklenmeden dolayı mı bu hale geliyor anlayamadım.
Merhabalar, Bazı yazılımlar Raspberry Pi'nin çekirdeğini meşgul edebiliyor. "make -j4" komutunu "make -j" şeklinde değiştirerek build etmeyi deneyebilirsiniz. Bu komut Raspberry Pi'nin tek çekirdeğinde build yaptıracaktır. Tabi bu beklenmesi gereken süreyi de arttıracaktır. Build işlemi uzun süren bir işlem, eğer herhangi bir hata mesajı döndürmedi ise beklemek gerekiyor.
SilBu yorum yazar tarafından silindi.
YanıtlaSilMerhabalar, tam hata mesajını görmeden doğru bir çözüm önermem zor. Ama gstream hataları kamera modülünün aktif edilmemesinden veya driver kurulum hatalarında alınmaktadır.
SilBu yorum yazar tarafından silindi.
YanıtlaSilAnlatım sırasında kullandığım dosya yükleme yolu benim sistemime göre ayarlanmıştı. Sadece /home yazıp kurulumu ve indirme işlemini /home klasörünün altına yapabilirsin. /usbmem klasörü senin kullandığın sistemde bulunmadığı için hata mesajı alıyorsun
Sil
YanıtlaSilCMake Error: The source directory "/home" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
Bu hatanın sebebi ne olabilir acaba.
Yukarıdaki anlatımda: Calısılacak konumun olusturulması baslıgı altında bulunan; "cd/home" ile baslayan adımı atlamıs olabilirsin. O kısma dikkat ederek tekrar kurulumu gerceklestirebilirsin. İyi çalışmalar.
SilVCMake Error: The source directory "/home" does not appear to contain CMakeLists.txt.
YanıtlaSilSpecify --help for usage, or press the help button on the CMake GUI.
Nedeni nedir.
Nedeni Cmake konfigürasyonunun home klasörü altında bulunamaması. Github üzerinde birkaç raporlama yapılmış konu ile alakalı. Arama motorları yardımı ile sorunu aratarak ilgili raporlara ulaşabilirsin. İyi çalışmalar
Silhaci zip dosyasını indiriken ordaki-0(sıfır) değil -O(harf) olacak onu belirtirsen benim gibi boşu boşuna uğraşmasın millet
YanıtlaSilAslında hemen yanı başında bulunan (3.2.0.zip) ibaresinin sonundaki ifade ile farklı bir şey olduğu bariz belli oluyor ama karışıklık yaşayanlara senin yorumun ile beraber çözüm sunmuş olduk. Katkın için teşekkürler.
SilMerhaba. Paylasiminiz icin tesekkurler. Opencv yi yukledim cpp programini compile ettigimde bir hata almiyorum fakat olusan yeni dosyada execute ettigimde herhangi birsey olmuyor hata dahi almiyorum yardimci olabilir misiniz
YanıtlaSilKurulum sırasında herhangi bir sıkıntı olmadıysa ve kurulumu test ettiğinde herhangi bir sıkıntı görünmüyorsa; raspberry pi'nin ayarlarına bakmayı deneyebilirsin. Muhtemelen izinlerle alakalı bir durum vardır. Harici c++ compilerı yüklemeyi de deneyebilirsin. iyi çalışmalar
SilMerhaba. make -j4 komutundan sonra
YanıtlaSilfatal error: stdlib.h: No such file or directory
#include_next
^
compilation terminated.
modules/core/CMakeFiles/pch_Generate_opencv_core.dir/build.make:62: recipe for target 'modules/core/precomp.hpp.gch/opencv_core_RELEASE.gch' failed
make[2]: *** [modules/core/precomp.hpp.gch/opencv_core_RELEASE.gch] Error 1
CMakeFiles/Makefile2:1970: recipe for target 'modules/core/CMakeFiles/pch_Generate_opencv_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/pch_Generate_opencv_core.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 36%] Generating precomp.hpp
[ 36%] Generating precomp.hpp.gch/opencv_dnn_RELEASE.gch
[ 36%] Generating precomp.hpp.gch/opencv_video_RELEASE.gch
[ 36%] Generating precomp.hpp.gch/opencv_fuzzy_RELEASE.gch
[ 36%] Built target pch_Generate_opencv_video
[ 36%] Built target pch_Generate_opencv_dnn
[ 36%] Built target pch_Generate_opencv_fuzzy
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
şeklinde bi hata alıyorum. Nedeni ne olabilir.
Hata kodundan anladığım kadarı ile yükleme yapacağı dosyaları okuyamamış. Genelde build klasörü ile alakalı hatalardan kaynaklanıyor. Build klasörünü kaldırdıktan sonra yeniden yükleme işlemi ile sorunun çözüleceğini düşünüyorum. İyi çalışmalar.
SilPaket listeleri okunuyor... Bitti
YanıtlaSilBağımlılık ağacı oluşturuluyor
Durum bilgisi okunuyor... Bitti
E: python2-numpy paketi bulunamadı
(cv) wrapper'ın içinde numpy kurulumu gerçekleştirdiğinden emin olduktan sonra hata çözülmüş olacaktır. iyi çalışmalar
Sil/tmp/ccBLAIyp.o: In function `main':
YanıtlaSilresizing.cpp:(.text+0x64): undefined reference to `cv::imread(cv::String const&, int)'
resizing.cpp:(.text+0xfd): undefined reference to `cv::namedWindow(cv::String const&, int)'
resizing.cpp:(.text+0x154): undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
resizing.cpp:(.text+0x17c): undefined reference to `cv::waitKey(int)'
/tmp/ccBLAIyp.o: In function `cv::String::String(char const*)':
resizing.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x4d): undefined reference to `cv::String::allocate(unsigned long)'
/tmp/ccBLAIyp.o: In function `cv::String::~String()':
resizing.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14): undefined reference to `cv::String::deallocate()'
/tmp/ccBLAIyp.o: In function `cv::Mat::~Mat()':
resizing.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39): undefined reference to `cv::fastFree(void*)'
/tmp/ccBLAIyp.o: In function `cv::Mat::release()':
resizing.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4b): undefined reference to `cv::Mat::deallocate()'
/tmp/ccBLAIyp.o: In function `cv::Mat::operator=(cv::Mat&&)':
resizing.cpp:(.text._ZN2cv3MataSEOS0_[_ZN2cv3MataSEOS0_]+0xe7): undefined reference to `cv::fastFree(void*)'
collect2: error: ld returned 1 exit status
Kurulumun hangi aşamasından sonra böyle bir hata aldığınızı söylerseniz daha sağlıklı bir yorum yapabilirim. İyi çalışmalar.
Silspecial device /dev/your-dev-name does not exist
YanıtlaSilsorun ne anlamadım
Kurulum yapmaya çalıştığınız "PATH" bulunmamakta. Dolayısı ile kurulum gerçekleşmemekte. İyi çalışmalar
SilMerhaba,sizde opencv kurulu rasbian var mı? Paylaşabilir misiniz?
YanıtlaSilKurulum esnasında problemler yaşıyorum. zaman kaybetmek istemiyorum