学习opencv第二章课后题4,5

来源:互联网 发布:淘宝图片的尺寸是多少 编辑:程序博客网 时间:2024/06/05 09:24
chapter2_3_4#include "stdafx.h"#include "cv.h"#include "highgui.h"IplImage* DoPyDown(IplImage* in, int fliter = IPL_GAUSSIAN_5x5)//第三个参数为卷积滤波器的类型{IplImage* out = cvCreateImage(cvSize(in->width / 2, in->height / 2),in->depth,in->nChannels);cvPyrDown(in, out, IPL_GAUSSIAN_5x5);//图片缩放一半return out;};int _tmain(int argc, _TCHAR* argv[]){CvCapture* caputre = 0;cvNamedWindow("AVI_EXAMPLE", CV_WINDOW_AUTOSIZE);cvNamedWindow("AVI_AFTER");//创建窗口,默认模式为适应图片大小if (argc == 1){caputre = cvCreateCameraCapture(0);//读入摄像头视频}else{caputre = cvCreateFileCapture("m.avi");}assert(caputre != NULL);IplImage* bgr_frame = cvQueryFrame(caputre);//从摄像头文件中抓取并返回一帧图像double fps = cvGetCaptureProperty(caputre, CV_CAP_PROP_FPS);//根据摄像头文件获取其帧率信息CvSize size = cvSize(((int)cvGetCaptureProperty(caputre, CV_CAP_PROP_FRAME_WIDTH)) / 2,//获取视频文件的宽和高((int)cvGetCaptureProperty(caputre, CV_CAP_PROP_FRAME_HEIGHT)) / 2);CvVideoWriter* writer = cvCreateVideoWriter("lgc.avi", -1, fps, size);//创建视频写入器IplImage* outImage;IplImage* logpolar_fram = cvCreateImage(size, IPL_DEPTH_8U, 3);while ((bgr_frame = cvQueryFrame(caputre)) != NULL){cvLogPolar(//笛卡尔坐标转为极坐标bgr_frame,logpolar_fram,cvPoint2D32f(bgr_frame->width / 2, bgr_frame->height / 2),40,CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);outImage = DoPyDown(bgr_frame);//缩放后的图像输出到outImagecvConvertImage(outImage, outImage, CV_CVTIMG_FLIP);//图像垂直翻转cvWriteFrame(writer, outImage);//将翻转后的图像写进文件cvShowImage("AVI_EXAMPLE", bgr_frame);//原来的视频图像cvShowImage("AVI_AFTER", outImage);//经过缩放,翻折的图像char c = cvWaitKey(33);if (27 == c)break;}//释放资源cvReleaseVideoWriter(&writer);//cvReleaseImage(&bgr_frame);cvReleaseImage(&outImage);cvReleaseCapture(&caputre);cvReleaseImage(&logpolar_fram);//销毁窗口cvDestroyWindow("AVI_Example");return 0;}chapter2_5#include "cv.h"#include "highgui.h"#include "stdafx.h"int g_pos;void onMyTracBar(int pos){g_pos = pos;}IplImage* DoPyDown(IplImage* in, int filter = CV_GAUSSIAN_5x5){IplImage* image = cvCreateImage(cvSize(in->width / 2, in->height / 2),in->depth,in->nChannels);cvPyrDown(in, image, filter);return image;}int _tmain(int argc, _TCHAR* argv[]){CvCapture* capture = cvCreateCameraCapture(0);assert(capture != NULL);cvNamedWindow("ex2_5");IplImage* frame = cvQueryFrame(capture);if (frame != NULL){cvCreateTrackbar("ljk", "ex2_5", &g_pos, 8, onMyTracBar);}while (frame != NULL){if (g_pos == 0 || g_pos == 1){cvShowImage("ex2_5", frame);}else{IplImage* convert_image = DoPyDown(frame);for (int i = 2; i < g_pos; i++){convert_image = DoPyDown(convert_image);}//cvConvertImage(convert_image, convert_image, CV_CVTIMG_FLIP);cvShowImage("ex2_5", convert_image);cvReleaseImage(&convert_image);}frame = cvQueryFrame(capture);char c = cvWaitKey(33);if (c == 27)break;}cvReleaseCapture(&capture);cvDestroyWindow("ex2_5");return 0;}

0 0
原创粉丝点击