Esta dica explicará o processo de configuração da biblioteca OpenCV no Windows 7. Essa biblioteca é usada principalmente para algoritmos de visão computacional.
1) Faça download do opencv
http://opencv.org/downloads.html
2) Baixar vs2012
http://www.microsoft.com/en-gb/download/details.aspx?id=30682
3) Extrair opencv (para os fins deste local de protocolo se em D 🙂
4) Confirme se a versão de bits do Windows é 64.
5) Configure o PATH – clique no botão Iniciar, clique com o botão direito em Meu Computador -> Propriedades -> Configurações Avançadas do Sistema -> Variáveis de Ambiente -> Variáveis do Sistema (encontre PATH) -> Editar -> basta adicionar o seguinte:
D:opencv249opencvbuildx64vc11bin
6) REINICIE o PC !!!!!
7) Abra o VS2012
8) Criar novo projeto vazio de aplicativo de console win32
9) Configure a liberação e depure para x64
10) Clique com o botão direito no projeto -> Propriedades
11) C / C ++ -> Geral:
D:opencv249opencvbuildinclude
D:opencv249opencvbuildincludeopencv
12) Ligante -> Geral:
D:opencv249opencvbuildx64vc11lib
13) Ligante -> Entrada:
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
opencv_nonfree249.lib
opencv_objdetect249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_videostab249.lib
opencv_core249.lib
NB: O final de 249 é a versão do OpenCV
14) Código de amostra:
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
using namespace cv;
VideoCapture capture (0);
cv::Mat out; cv::Mat out2;
int main(int, char**)
{
namedWindow( "Edges", CV_WINDOW_NORMAL );
//CvCapture* capture = cvCaptureFromCAM(0);
for(;;) {
//frame = cvQueryFrame( capture );
Mat frame;
capture >> frame;
GaussianBlur( frame, out, Size(5, 5), 0, 0 );
cvtColor( out ,out2, CV_BGR2GRAY ); // produces out2, a one-channel image (CV_8UC1)
Canny( out2, out2, 100, 200, 3 ); // the result goes to out2 again,but since it is still one channel it is fine
vector<vector<Point>> contours;
findContours(out2, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
drawContours(frame, contours, -1, Scalar(239,255,0), 2);
//if( !frame.data ) break;
imshow( "Edges", out2 );
imshow( "Contours", frame );
if(cv::waitKey(30) >= 0) break;
}
return 0;
}
15) Construa ou pressione F5.
Se todas as etapas forem seguidas com precisão, o código de amostra deve funcionar.