From: http://blog.csdn.net/zzy7222872/article/details/6047446 以前用的是VC6.0OpenCV1.0的组合,一直用的很好。一般的图像处理算法都可以实现,现在突然想搞一下立体视觉方面的东西,查看了OpenCV的手册,发现立体视觉上的大部分函数只有OpenCV1.0以上版
From:
http://blog.csdn.net/zzy7222872/article/details/6047446
以前用的是VC6.0+OpenCV1.0的组合,一直用的很好。一般的图像处理算法都可以实现,现在突然想搞一下立体视觉方面的东西,查看了OpenCV的手册,发现立体视觉上的大部分函数只有OpenCV1.0以上版本才有。于是乎准备鸟枪换炮上OpenCV2.0,一查资料,发现OpenCV2.0不能再VC6.0下跑,于是乎只好装VS2005,但是又怕装了以后和原来的VC6.0冲突,导致以前的工程都不能用。上网查了资料说装在不同路径下是没问题的。于是大胆安装在其他目录下,装好后果然不冲突,看来只要路径不同就没问题,微软的工程师也不是菜鸟啊。接下来搞定OpenCV2.0,我想在能用原来1.0版本的情况下也可以用2.0的版本,于是将OpenCV2.0装在了和原来版本不同的目录下,装完Ok,没有问题。接下来是配置。OpenCV2.0的配置没有原来1.0的简单,需要自己下载CMAKE来产生需要的dll和lib文件。一下参考了一篇帖子如下。
1.Opencv2.0下载地址:
http://www.opencv.org.cn/index.php/Download
安装时选择默认路径,安装后检查C:/OpenCV2.0/bin
是否已经被加入到环境变量PATH,如果没有,请加入。
加入后需要注销当前Windows用户(或重启)后重新登陆才生效。
2.配置IDE,打开VS2005,选择菜单:Tools -> Options,在弹出窗口中选择
Projects and Solutions -> VC++ Directories
首先,从“Show Directories for”的list box中选择“Include files”,
添加路径“C:/OpenCV2.0/include/opencv”。
3.添加库文件(library files),需要下载CMAKE,用来生产所需的库文件,cmake下载地址:
http://www.cmake.org/cmake/resources/software.html
打开cmake-gui。在第一个路径处选择opencv的安装路径,记得是CMakeLists.txt所在的那个路径。
第二个路径是 make得到的工程保存位置。
点击Configure并选择合适的编译器。选择完编译器之后需点击Configure两次,
最后点击Generate生成我们想要的工程文件(.lib .dll)。
4.打开make得到的工程保存位置中的OpenCV.sln文件,build solution后在工程目录下得到bin和lib的文件夹,
将bin/debug中的.dll文件复制到C:/OpenCV2.0/bin,将lib/debug中的.lib文件复制到C:/OpenCV2.0/lib,
5.添加库文件(library files),选择菜单:Tools -> Options,在弹出窗口中
选择Projects and Solutions -> VC++ Directories,首先,从“Show Directories for”的list box中
选择“Library files”,添加路径“C:/OpenCV2.0/lib”。选择“source files”,
添加路径“C:/OpenCV2.0/src/cv”,“C:/OpenCV2.0/src/cvaux”,“
C:/OpenCV2.0/src/cxcore”,“C:/OpenCV2.0/src/highgui”,“C:/OpenCV2.0/src/ml”。
6.建立project后要设置项目所需要的lib,
选择菜单Project -> Properties -> Configuration Properties -> Linker -> Input,
在additional dependencies中加入cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib等需要的库。
注意加入的库文件要和第3步生成的文件名一致,假如在第3步中选择VS2005的编译器时,
生成的文件名含有200d(不知道其他的编译器会不会),此时加入的库文件应该
是cxcore200d.lib cv200d.lib ml200d.lib cvaux200d.lib highgui200d.lib。
每次新建一个project都要添加项目所需的lib。
按上面的提示配置完后拷贝了以OpenCV中文论坛上的2.0版本的helloworld程序,发现有fatal error C1010: unexpected end of file while looking的错误, 查了下是预编译头的问题,解决方法是在设置那C/C++的Category的选项框选择Precompiled Headers 然后再选择Not using precompiled headers,这样再编译一下,Ok通过。运行一下,终于看到了经典的lena照片。
现在情况如下,我在VC6.0平台下使用OpenCV1.0库,在VS2005下使用OpenCV2.0库,暂时运行正常,没有冲突。写段文章总结一下,防止以后忘了,想双平台运行的朋友也可以参考一下。如有Bug出现,也希望大家提出来。
=================================================================================
以下为个人整理的内容:
根据参考的那篇博文说:需要自己下载CMake来产生需要的dll和lib文件!
但是我是从网上下载了OpenCV2.4.6.0, 双击解压后,发现里面有现成的dll和lib文件,可以直接使用,不需要下载CMake来编译产生dll和lib文件。
下面的源代码来自http://docs.opencv.org/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html
本人实现了下,环境:vc2010 + OpenCV2.4.6.0
/* 环境:winXP + vc2010 + OpenCV2.4.6.0(http://jaist.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.4.6/OpenCV-2.4.6.0.exe) OpenCV2.4.6.0安装目录:D:\opensource\opencv 1. 添加头文件所在目录: D:\opensource\opencv\modules\core\include D:\opensource\opencv\modules\imgproc\include D:\opensource\opencv\modules\highgui\include 注:以上三个目录可用“D:\opensource\opencv\build\include”一个代替! 2. 添加lib文件所在目录: D:\opensource\opencv\build\x86\vc10\lib 3. 为项目添加使用到的lib文件: opencv_core246d.lib;opencv_imgproc246d.lib;opencv_highgui246d.lib; 配置完成,编译成功! 运行时,可能会出现提示:缺少xxx.dll,这时只要将相关dll复制到可执行程序同一目录或将dll所在目录加入到Path环境变量中! 我采取的是将“D:\opensource\opencv\build\x86\vc10\bin”加入到Path环境变量中! 再次运行,OK! */ // Video Image PSNR and SSIM #include <iostream> // for standard I/O #include <string> // for strings #include <iomanip> // for controlling float print precision #include <sstream> // string to number conversion #include <opencv2> // Gaussian Blur #include <opencv2> // Basic OpenCV structures (cv::Mat, Scalar) #include <opencv2> // OpenCV window I/O using namespace std; using namespace cv; double getPSNR ( const Mat& I1, const Mat& I2); Scalar getMSSIM( const Mat& I1, const Mat& I2); static void help() { cout > psnrTriggerValue >> delay;// take out the numbers char c; int frameNum = -1; // Frame counter VideoCapture captRefrnc(sourceReference), captUndTst(sourceCompareWith); if ( !captRefrnc.isOpened()) { cout > frameReference; captUndTst >> frameUnderTest; if( frameReference.empty() || frameUnderTest.empty()) { cout > > "; break; } ++frameNum; cout <br> <br> <br> <br> </opencv2></opencv2></opencv2></sstream></iomanip></string></iostream>

Atribut asid termasuk atom, konsistensi, pengasingan dan ketahanan, dan merupakan asas reka bentuk pangkalan data. 1. Atomicity memastikan bahawa urus niaga sama ada berjaya atau gagal sepenuhnya. 2. Konsistensi memastikan pangkalan data tetap konsisten sebelum dan selepas transaksi. 3. Pengasingan memastikan bahawa urus niaga tidak mengganggu satu sama lain. 4. Kegigihan memastikan data disimpan secara kekal selepas penyerahan transaksi.

MySQL bukan sahaja sistem pengurusan pangkalan data (DBMS) tetapi juga berkait rapat dengan bahasa pengaturcaraan. 1) Sebagai DBMS, MySQL digunakan untuk menyimpan, menyusun dan mengambil data, dan mengoptimumkan indeks dapat meningkatkan prestasi pertanyaan. 2) Menggabungkan SQL dengan bahasa pengaturcaraan, tertanam dalam Python, menggunakan alat ORM seperti SQLalChemy dapat memudahkan operasi. 3) Pengoptimuman prestasi termasuk pengindeksan, pertanyaan, caching, perpustakaan dan bahagian meja dan pengurusan transaksi.

MySQL menggunakan arahan SQL untuk menguruskan data. 1. Perintah asas termasuk pilih, masukkan, kemas kini dan padam. 2. Penggunaan lanjutan melibatkan fungsi gabungan, subquery dan agregat. 3. Kesilapan umum termasuk isu sintaks, logik dan prestasi. 4. Petua Pengoptimuman termasuk menggunakan indeks, mengelakkan Pilih* dan menggunakan had.

MySQL adalah sistem pengurusan pangkalan data relasi yang sesuai untuk menyimpan dan menguruskan data. Kelebihannya termasuk pertanyaan berprestasi tinggi, pemprosesan transaksi fleksibel dan jenis data yang kaya. Dalam aplikasi praktikal, MySQL sering digunakan dalam platform e-dagang, rangkaian sosial dan sistem pengurusan kandungan, tetapi perhatian harus dibayar kepada pengoptimuman prestasi, keselamatan data dan skalabilitas.

Hubungan antara SQL dan MySQL adalah hubungan antara bahasa standard dan pelaksanaan khusus. 1. SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data relasi, membolehkan penambahan data, penghapusan, pengubahsuaian dan pertanyaan. 2.MYSQL adalah sistem pengurusan pangkalan data tertentu yang menggunakan SQL sebagai bahasa pengendaliannya dan menyediakan penyimpanan dan pengurusan data yang cekap.

InnoDB menggunakan redolog dan undologs untuk memastikan konsistensi dan kebolehpercayaan data. 1. Pengubahsuaian halaman data rekod untuk memastikan pemulihan kemalangan dan kegigihan transaksi. 2.UNDOLOGS merekodkan nilai data asal dan menyokong penggantian transaksi dan MVCC.

Metrik utama untuk menjelaskan arahan termasuk jenis, kunci, baris, dan tambahan. 1) Jenis mencerminkan jenis akses pertanyaan. Semakin tinggi nilai, semakin tinggi kecekapan, seperti const adalah lebih baik daripada semua. 2) Kunci memaparkan indeks yang digunakan, dan null menunjukkan tiada indeks. 3) Baris menganggarkan bilangan baris yang diimbas, yang mempengaruhi prestasi pertanyaan. 4) Tambahan memberikan maklumat tambahan, seperti menggunakanFilesort meminta bahawa ia perlu dioptimumkan.

MenggunakanTemary menunjukkan bahawa keperluan untuk membuat jadual sementara dalam pertanyaan MySQL, yang biasanya dijumpai di Orderby menggunakan lajur yang berbeza, GroupBy, atau tidak diindeks. Anda boleh mengelakkan berlakunya indeks dan menulis semula pertanyaan dan meningkatkan prestasi pertanyaan. Khususnya, apabila menggunakan pembelian muncul dalam menjelaskan output, ini bermakna MySQL perlu membuat jadual sementara untuk mengendalikan pertanyaan. Ini biasanya berlaku apabila: 1) deduplikasi atau pengelompokan apabila menggunakan yang berbeza atau kumpulan; 2) Susun apabila Orderby mengandungi lajur bukan indeks; 3) Gunakan subquery kompleks atau menyertai operasi. Kaedah Pengoptimuman termasuk: 1) Orderby dan GroupB


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa