寫 OpenCV 程式碼讀圖檔
練習用 OpenCV得到視訊
2013體感互動課程Blog, 特別邀請體感互動大師級的 Heresy老師授課哦!
上課教室: 銘傳大學桃園校區S405
上課時段: 週三上午02-04節, 第01週上課: 2013/2/20, 期中考(第9週)、6/12端午節(第17週)、期末考週(第18週),有15週授課。
授課教師: 葉正聖老師
業界教師: Heresy老師 - 第04週(3/13)教OpenNI 2, 第05週(3/20)教 NiTE 2, 第16週(6/5)期末作品展示講評
2013年3月6日 星期三
99161082_徐文玲, HW02, Week02
1.環境設置
下載/安裝 OpenCV
然後開啟 Visual C++
用Win32 主控台應用程式(要記得取消先行編輯標頭檔)
設定 Project 的屬性
Include 目錄 增加 C:\OpenCV2.1\include;
程式目錄 增加 C:\OpenCV2.1\lib;
Link Input 增加 cv210.lib; cxcore210.lib; highgui210.lib;
2.顯示圖片
3.使用Webcam顯示視訊
4.心得
執行程式前的設定比較麻煩,會因為多一個空格而不能執行
設定完成後,程式碼還可以理解!!
下載/安裝 OpenCV
然後開啟 Visual C++
用Win32 主控台應用程式(要記得取消先行編輯標頭檔)
設定 Project 的屬性
Include 目錄 增加 C:\OpenCV2.1\include;
程式目錄 增加 C:\OpenCV2.1\lib;
Link Input 增加 cv210.lib; cxcore210.lib; highgui210.lib;
2.顯示圖片
執行程式前的設定比較麻煩,會因為多一個空格而不能執行
設定完成後,程式碼還可以理解!!
2013年2月27日 星期三
98160185_張家薰, HW02, Week02
前言: 因為 3/13 及 3/20 會邀請 Heresy 老師來授課,授課內容是 OpenNI 2 + NiTE 2 配合 OpenCV 來寫程式, 所以今天上課,要先針對 OpenCV 及 Visual C++ 進行教學
今天任務:
1. Visual C++ 寫程式 (新增專案)
2. 下載/安裝 OpenCV (要注意 Add OpenCV to PATH)
http://sourceforge.net/projects/opencvlibrary/?source=dlp
3. 使用 Visual C++ 寫 OpenCV 程式 (練習設定 OpenCV 的目錄、Link Input 檔案)
3.1. Include 目錄 增加 C:\OpenCV2.1\include
3.2. Lib 目錄 增加 C:\OpenCV2.1\lib
3.3. Link Input 增加 cv210.lib; cxcore210.lib; highgui210.lib
4. 使用 OpenCV 得到視訊畫面
TODO: 開啟 Visual C++
Visual Studio 2010的 Visual C++
1.1. TODO: 下載/安裝 OpenCV
2. 新增專案, Win32 主控台
3.0. 寫 OpenCV 程式碼讀圖檔
3.1. Include 目錄 (小心, c:\opencv2.1\include;
3.2. Lib 目錄 (小心, c:\opencv2.1\lib;
3.3. 設定 Link 的 Input 加入 cxcore210.lib; cv210.lib; highgui210.lib
圖片:
自己的小問題:如果會有找不到 cxcore210.lib; cv210.lib; highgui210.lib重新開啟visual studio,可以解決問題
不要忘了打副檔名
// pic.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include <opencv\highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img=cvLoadImage("c:/Hydrangeas.jpg");
cvShowImage("window", img);
cvWaitKey(0);
return 0;
}
視訊:
// camera.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img=cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img", img);
int key =cvWaitKey(33);
if(key==27)break;
}
cvReleaseCapture(&cap);
return 0;
}
畫框:
#include "stdafx.h"
#include <opencv/highgui.h>
#include <opencv/cv.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img=cvQueryFrame(cap);
IplImage * photoframe=cvLoadImage("c:/photo_frame.bmp");
//cvShowImage("photo",photoframe);
IplImage * mask=cvCreateImage(cvGetSize(photoframe), IPL_DEPTH_8u,1);
cvInRangeS(photoframe, cvScalar(254,254,254), cvScalar(256,256,256),mask);
cvNot(mask,mask);
//cvShowImage("mask",mask);
IplImage * result=cvCloneImage(photoframe);
while(1){
img=cvQueryFrame(cap);
//cvShowImage("cap", result);
cvResize(img, result);
//cvShowImage("result", result);
cvCopy(photoframe,result,mask);
cvShowImage("img", result);
int key =cvWaitKey(33);
if(key==27)break;
}
cvReleaseCapture(&cap);
return 0;
}
W2 課堂練習
第二周課堂練習
程式碼
----------------------------------------------------
// 160025.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img = cvLoadImage("c:/aaa.jpg");
cvShowImage("window",img);
cvWaitKey(0);
return 0;
}
使用Visual Studio + OpenCV 讀圖片檔
程式碼
----------------------------------------------------
// 160025.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img = cvLoadImage("c:/aaa.jpg");
cvShowImage("window",img);
cvWaitKey(0);
return 0;
}
-----------------------------------------------------
圖片擷取
第二題
開啟視訊並且拍照
程式碼
------------------------------------------
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img",img);
int key=cvWaitKey(33);
if(key==27) break;
}
cvReleaseCapture(&cap);
return 0;
}
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img",img);
int key=cvWaitKey(33);
if(key==27) break;
}
cvReleaseCapture(&cap);
return 0;
}
--------------------------------------------------------
陳品如_98160726,HW02
今天學到了用openCV開啟一張圖與抓取視訊。
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img=cvLoadImage("c:/12345.jpg");
cvShowImage("windw",img);
cvWaitKey(0);
printf("hello");
system ("pause");
return 0;
}
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
while(1){
img = cvQueryFrame(cap);
cvShowImage("img",img);
int key = cvWaitKey(33);
if(key==27) break;
}
cvReleaseCapture(&cap);
return 0;
}
HW02, Week02, 99160132_劉翊晨
#include "stdafx.h"
#include<opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture*cap=cvCreateCameraCapture(0);
//IplImage*img=cvLoadImage("c:/99160132.jpg");
IplImage*img=cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img",img);
int Key=cvWaitKey(33);
if(Key==27)break;
}
cvReleaseCapture(&cap);
//cvWaitKey(0);
return 0;
}
98162123 陳志軒 第二周進度
本周進度:
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
//IplImage * img=cvLoadImage("c:/aaa.jpg");
while(1){
img=cvQueryFrame(cap);
cvShowImage("img",img);
int key=cvWaitKey(33);
if(key==27)break;
}
cvReleaseCapture(&cap);
return 0;
}
今天學會了如何使用visual c++開啟視訊,感覺還滿好玩滿有趣的,只是還不會加上老師教的附加相框的功能,還需要再研究研究。
99160556 徐煒智 Week02 Hw02
今天的課程上有學到如何用opev CV 讀取圖片及用讀取視訊...
程式碼:
// 99160556.cpp : 定義主控台應用程式的進入點。
//
#include "stdafx.h"
#include "stdlib.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap=cvCreateCameraCapture(0);
IplImage * img=cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img", img);
int key=cvWaitKey(33);
if (key==27) break;
}
cvReleaseCapture(&cap);
system("pause");
return 0;
}
HW02,Week02
1.
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img = cvLoadImage("c:/aaa.png");
cvShowImage("window",img);
cvWaitKey(0);
return 0;
}
2.
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{ CvCapture * cap=cvCreateCameraCapture(0);
IplImage * img=cvQueryFrame(cap);
while(1){
IplImage * img=cvQueryFrame(cap);
cvShowImage("img",img);
int key=cvWaitKey(33);
if (key==27)break;
}
cvReleaseCapture(&cap);
return 0;
}
Week02,Hw02,99160770_吳姿儀
1. 安裝opencv2.1(OpenCV-2.1.0-win32-vs2008.exe)
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/
**選第二個(Add OpenCV to the system PATH for all user)或第三個選項( Add OpenCV to the system PATH for current user)
2. 開啟visual studio 2010(Visual C++)
http://www.microsoft.com/visualstudio/cht/downloads#d-additional-software
**File->New->Project->Win32主控台應用程式->取名稱->不要選"先行編譯標頭檔"
範例程式1:(一般)
#include "stdafx.h"
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("Hello");
system("pause");
return 0;
}
<圖片要存在專案資料夾內!!>
<每開一次新的專案必須重新設定!!>
解決辦法>>http://msdn.microsoft.com/ en-us/ vs11trainingcourse_newidefeatur esforcpp_topic4.aspx
3. 使用 Visual C++ 寫 OpenCV 程式 (練習設定 OpenCV 的目錄、Link Input 檔案)
3.1. Include 目錄 增加 C:\OpenCV2.1\include;<不可加空格!!!!!!>
3.2. 程式目錄 增加 C:\OpenCV2.1\lib;<不可加空格!!!!!!>
3.3. Link Input 增加 cv210.lib; cxcore210.lib; highgui210.lib;<不可加空格!!!!!!>
屬性介面
範例程式2:(opencv--show圖片)
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img = cvLoadImage("1.jpg");
cvShowImage("window",img);
cvWaitKey(0);
return 0;
}
範例程式3:(opencv--視訊)
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img",img);
int key=cvWaitKey(33);
if(key==27) break;
}
cvReleaseCapture(&cap);
return 0;
}
範例程式4:(opencv--視訊相框)
心得:
之前都是使用Dev C++來跑OpenCV,此次上課小葉老師教使用Visual studio C++來跑OpenCv,雖然安裝和設定步驟有點煩雜,以及執行時會出現小錯誤等,但最後成功時也會莫名的開心和有成就感,藉由這次上課所教的之後也可以回家試著安裝看看。
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/
2. 開啟visual studio 2010(Visual C++)
http://www.microsoft.com/visualstudio/cht/downloads#d-additional-software
**File->New->Project->Win32主控台應用程式->取名稱->不要選"先行編譯標頭檔"
#include "stdafx.h"
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
printf("Hello");
system("pause");
return 0;
}
<圖片要存在專案資料夾內!!>
<每開一次新的專案必須重新設定!!>
解決辦法>>http://msdn.microsoft.com/
3. 使用 Visual C++ 寫 OpenCV 程式 (練習設定 OpenCV 的目錄、Link Input 檔案)
3.1. Include 目錄 增加 C:\OpenCV2.1\include;<不可加空格!!!!!!>
3.2. 程式目錄 增加 C:\OpenCV2.1\lib;<不可加空格!!!!!!>
3.3. Link Input 增加 cv210.lib; cxcore210.lib; highgui210.lib;<不可加空格!!!!!!>
屬性介面
3.1. Include 目錄 (小心,c:\opencv2.1\include;後面不可以加空格哦)
3.2. 程式目錄 (小心,c:\opencv2.1\lib;後面不可以加空格哦)
3.3. 設定 Link 的 Input 加入 cxcore210.lib; cv210.lib; highgui210.lib;

#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img = cvLoadImage("1.jpg");
cvShowImage("window",img);
cvWaitKey(0);
return 0;
}
範例程式3:(opencv--視訊)
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
while(1){
img=cvQueryFrame(cap);
cvShowImage("img",img);
int key=cvWaitKey(33);
if(key==27) break;
}
cvReleaseCapture(&cap);
return 0;
}
範例程式4:(opencv--視訊相框)
心得:
之前都是使用Dev C++來跑OpenCV,此次上課小葉老師教使用Visual studio C++來跑OpenCv,雖然安裝和設定步驟有點煩雜,以及執行時會出現小錯誤等,但最後成功時也會莫名的開心和有成就感,藉由這次上課所教的之後也可以回家試著安裝看看。
Week02-99160061-洪蓁乾
今天第二週(2/27)進度: 使用 Visual C++ 配合 OpenCV 進行圖片及視訊的互動
1.Hello:
先開啟visual studio c++ 程式然後先試試看以前DEV C++ 學過的簡單程式碼,
有成功的執行出來。
2.圖片:
這時候就有加上OPENCV的部分,是要下載opencv 2.1.0的版本,
去更改專案屬性裡的程式碼目錄,使opencv/highgui 成立
以下是我的成果-
3.視訊:
依照老師上的講解,試著自己去嘗試,羅技的射影機直接與opencv去做連接,
使opencv取得視訊,每一秒33張圖片,而且每一秒都去做及時的更新,
加上這次的視訊機器真的是很高級,可以立即聚焦又清晰,使照到的物品都格外的有感覺。
以下是我成果-
謝謝老師讓我們使用到那麼好的器材,而且也因為業界老師關係,
耐心地教我們opencv,真的很感動,還有一步一步的教我們程式碼的運作及原因,
最後還特地秀了一下視訊以外還能加的特效,真的很厲害!!!!
我會加油的。
1.Hello:
先開啟visual studio c++ 程式然後先試試看以前DEV C++ 學過的簡單程式碼,
有成功的執行出來。
2.圖片:
這時候就有加上OPENCV的部分,是要下載opencv 2.1.0的版本,
去更改專案屬性裡的程式碼目錄,使opencv/highgui 成立
以下是我的成果-
3.視訊:
依照老師上的講解,試著自己去嘗試,羅技的射影機直接與opencv去做連接,
使opencv取得視訊,每一秒33張圖片,而且每一秒都去做及時的更新,
加上這次的視訊機器真的是很高級,可以立即聚焦又清晰,使照到的物品都格外的有感覺。
以下是我成果-
謝謝老師讓我們使用到那麼好的器材,而且也因為業界老師關係,
耐心地教我們opencv,真的很感動,還有一步一步的教我們程式碼的運作及原因,
最後還特地秀了一下視訊以外還能加的特效,真的很厲害!!!!
我會加油的。
HomeWork02 邱昱杰
步驟一
安裝OpenCV,至網站http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/下載"OpenCV-2.1.0-win32-vs2008.exe"並安裝,在安裝中選擇Add OpenCV to the system PATH for all users.
步驟二
左方選VC++ 目錄,右方選Inclulde 目錄加上C:\OpenCV2.1\include;
步驟四
步驟四
int _tmain(int argc, _TCHAR* argv[])
while(1){
安裝完成後,開啟Microsoft Visual Studio 2010,選左上角檔案→新增→專案,安裝範本選擇"Win32主控制台應用程式,專案名稱輸入"CamOpenCV",按下確定,接著要求勾選選項的時候,先行編譯標頭檔不要勾選。
步驟三
在左方專案名稱上按右鍵→屬性,
程式庫目錄加上C:\OpenCV2.1\lib;
接著左方選連接器→輸入,右方其他相依性加上cv210.lib;cxcore210.lib;highgui210.lib
回到編譯頁面,輸入以下程式碼,編譯執行,就可以得到視訊的畫面視窗了。
#include "stdafx.h"
#include <opencv/highgui.h>
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
img = cvQueryFrame(cap);
cvShowImage("img",img);
int key = cvWaitKey(33);
if (key==27)break;
}
cvReleaseCapture(&cap);
return 0;
}
安裝OpenCV,至網站http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/下載"OpenCV-2.1.0-win32-vs2008.exe"並安裝,在安裝中選擇Add OpenCV to the system PATH for all users.
步驟二
左方選VC++ 目錄,右方選Inclulde 目錄加上C:\OpenCV2.1\include;
步驟四
步驟四
int _tmain(int argc, _TCHAR* argv[])
while(1){
安裝完成後,開啟Microsoft Visual Studio 2010,選左上角檔案→新增→專案,安裝範本選擇"Win32主控制台應用程式,專案名稱輸入"CamOpenCV",按下確定,接著要求勾選選項的時候,先行編譯標頭檔不要勾選。
步驟三
在左方專案名稱上按右鍵→屬性,
程式庫目錄加上C:\OpenCV2.1\lib;
接著左方選連接器→輸入,右方其他相依性加上cv210.lib;cxcore210.lib;highgui210.lib
回到編譯頁面,輸入以下程式碼,編譯執行,就可以得到視訊的畫面視窗了。
#include "stdafx.h"
#include <opencv/highgui.h>
{
CvCapture * cap = cvCreateCameraCapture(0);
IplImage * img = cvQueryFrame(cap);
img = cvQueryFrame(cap);
cvShowImage("img",img);
int key = cvWaitKey(33);
if (key==27)break;
}
cvReleaseCapture(&cap);
return 0;
}
圖片
#include "stdafx.h"
#include <opencv/highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage * img = cvLoadImage("c:/aaa.jpg");
cvShowImage("window",img);
cvWaitKey(0);
return 0;
}
訂閱:
文章 (Atom)