顯示具有 HW1 標籤的文章。 顯示所有文章
顯示具有 HW1 標籤的文章。 顯示所有文章

2013年4月22日 星期一

00360151_李飛鴻_自畫像












#include<cv.h>
#include<highgui.h>
int main()
{
IplImage* gray = NULL;
IplImage* bw = NULL;
IplImage* pCannyImg = NULL;

CvCapture *capture;
IplImage *frame;
capture=cvCreateCameraCapture(0);
cvNamedWindow("Webcam",1);
cvNamedWindow("Webcam1",1);
cvNamedWindow("Webcam2",1);
cvNamedWindow("Webcam3",1);

//gray = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U, 1);

//bw = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U, 1);

//pCannyImg = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 1);



 

while(1)
{
frame = cvQueryFrame(capture);
cvShowImage("Webcam", frame);
gray = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U, 1);

cvCvtColor(frame, gray, CV_BGR2GRAY);
cvShowImage("Webcam1", gray);
bw = cvCreateImage(cvSize(frame->width,frame->height), IPL_DEPTH_8U, 1);

cvThreshold( gray, bw, 145, 255, CV_THRESH_BINARY );
cvShowImage("Webcam2", bw);
pCannyImg = cvCreateImage(cvGetSize(frame), IPL_DEPTH_8U, 1);


cvCanny(gray, pCannyImg, 50, 150, 3);
cvShowImage("Webcam3", pCannyImg);
cvWaitKey(10);
}
cvReleaseCapture(&capture);
cvDestroyWindow("Webcam");

}

自畫像


98360206-自畫像


這次的作業在做gray沒有什麼問題
但是在bw等等不知道為什麼就是會閃動以及顯示不出
後來成功解決閃動的問題
以下是重要的程式碼

pImg2 = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 3);
  gray = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
  bw = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
  pCannyImg = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 1);



     pImg=cvQueryFrame(capture);
     cvResize(pImg,dst,CV_INTER_NN);
     cvCvtColor(pImg, gray, CV_BGR2GRAY);
     cvThreshold( gray, bw, 160, 255, CV_THRESH_BINARY );
     cvThreshold( pImg, pImg2, 127, 255, CV_THRESH_BINARY );
     cvCanny(gray, pCannyImg, 50, 150, 3);

為圖片取得記憶體等等的程式碼
視訊解析感覺相當有趣


自畫像







互動電子-hw1-自畫像





重點程式碼:



  pImg2 = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 3);
  gray = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
  bw = cvCreateImage(cvSize(pImg->width,pImg->height), IPL_DEPTH_8U, 1);
  pCannyImg = cvCreateImage(cvGetSize(pImg), IPL_DEPTH_8U, 1);
cvNamedWindow("src", 1);
cvNamedWindow("gray",1);

    while(1)
    {
     pImg=cvQueryFrame(capture);

        cvResize(pImg,dst,CV_INTER_NN);

cvCvtColor(pImg, gray, CV_BGR2GRAY);
cvThreshold( gray, bw, 130, 255, CV_THRESH_BINARY );
cvThreshold( pImg, pImg2, 127, 255, CV_THRESH_BINARY );


cvCanny(gray, pCannyImg, 50, 150, 3);