视频前景提取 (I)【滑动条版本】

对两个不同的图片(取自于视频)进行差分,然后二值化,只不过添加进了一个滑动条,可以更直观的看到变化。

//显示图像文件
#include <opencv2/opencv.hpp>
#include <stdio.h>

using namespace std;

//#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

IplImage *img3=NULL;  //差分图
IplImage *img4=NULL;  //二值图

void on_trackbar(int pos)
{
	// 转为二值图
	cvThreshold(img3, img4, pos, 255, CV_THRESH_BINARY);
	// 显示二值图
	cvShowImage("二值图", img4);
}

int main()
{
	//从文件中读取图像
	IplImage *img1 = cvLoadImage("007.jpg", CV_LOAD_IMAGE_UNCHANGED);
	IplImage *img2 = cvLoadImage("009.jpg", CV_LOAD_IMAGE_UNCHANGED);

	img3=cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels);
	cvAbsDiff(img1,img2,img3);

	// 对得到的前景进行阈值选取,去掉伪前景
	img4=cvCreateImage(cvGetSize(img1),img1->depth,img1->nChannels);

	//在指定窗口中显示图像
	cvShowImage("原图1", img1);
	cvShowImage("原图2", img2);
	cvShowImage("差分", img3);

	// 创建二值图窗口
	cvNamedWindow("二值图", CV_WINDOW_AUTOSIZE);
	// 滑动条
	int nThreshold = 0;
	cvCreateTrackbar("二值图滑动条", "二值图", &nThreshold, 254, on_trackbar);

	on_trackbar(1);

	//等待按键事件
	cvWaitKey(0);

	cvDestroyAllWindows();
	cvReleaseImage(&img1);
	cvReleaseImage(&img2);
	cvReleaseImage(&img3);
	cvReleaseImage(&img4);

	return 0;
}

时间: 2025-01-29 07:52:17

视频前景提取 (I)【滑动条版本】的相关文章

视频前景提取 (III)【Mat版本】

这是(II)中的Mat版本,特别注意一下accumulateWeighted这个函数的用法. 我将官方文档中的函数说明贴出来: accumulateWeighted Updates a running average. C++: void accumulateWeighted(InputArray src, InputOutputArray dst, double alpha, InputArray mask=noArray() ) Python: cv2.accumulateWeighted(

视频前景提取 (II)【IplImage版本】

以下代码可以求出视频的前景,用的方法就是拿第一帧做差分... 但是以下代码有个致命的问题,那就是在视频帧处理的过程中,不断的create却不释放内存,导致了内存溢出.. #include "cv.h" #include "highgui.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include &

用jquery实现自定义风格的滑动条实现代码_jquery

前些天我们学生在线首页改版,要做一个工具栏,由于版面的限制,原先策划的很多工具只好安排在一个小区域里面,具体效果如下: 当然,这样的效果,用html自带的控件也可以实现.不过自定义的话就可以自己设置滑动条的样式啦,比如说设为红色.蓝色等,按钮形状也可以自己做啦. 需要实现的效果是,这些工具一次最多在可见区域显示9个(这里假设工具项总数多于9个,不满9个的话,将来也很有可能扩展到9个),点击上下的按钮即可将可见区域内的工具区域上下移动. 但是这样做好后,运营人员给我提意见了:要是移动滑动条就可以实

利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转

(一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分,一点参考价值都没有,怎么办? (二)解决的思路: 1.自己进行研究,不指望网络有现成的馅饼,因为那里多了去的陷阱,很可恶. 2.要解决的关键问题是slider滑动条控件如何与视频播放实时结合在一起:   ①主窗体的OnHScroll()响应函数负责响应slider滑动条的变化,这样就轻松搞定slid

JavaScript 仿Apple滑动条(拖动条)产品展示效果

这个滑动条(拖动条)效果,一开始是参考了BlueDestiny的slider和Apple产品展示的样式,做了程序的原型.在做了拖放效果之后,我想应该可以做一个更好的了,所以重做一遍,完善和扩展了一些功能.碍于时间没有做得很强大,都是一些基本功能,希望各位多提意见! 效果预览(代码太多只能贴个图了) 预览效果1:这个是仿Apple滑动条产品展示效果.除了原来的效果(包括点击缓动滑移.拖动滑移),我还加入了本程序特有的滚轮和键盘控制,滑动条两端鼠标放上去会自动滑动,滑动到两边还会自动换一个表示停止的

never sliderbar(js版简单的滑动条控件)

js|控件 web滑动条,web滚动条,js滚动条,滑动条控件,js Sliderbar 已经再次更新:支持实时监控sliderbar的数据,允许有callback回调的函数,有示例,持续更新中......   1.可自定样式SetStyle() 2.带有onSroll功能 3.有setSldPoint(设置位置)接口 4.有getSldPoint(取得位置)接口 5.可自己设置sliderBar的最大值(不是sliderbar的长度,而是值) 6.自定义微调功能(setIncrement(10

jQuery实现的支持IE的html滑动条

 本文给大家分享的是一段使用jQuery实现支持IE的html滑动条代码,效果非常不错,这里推荐给大家,希望大家能够喜欢.       代码如下: <html> <script type="text/javascript" src="jquery.js"></script> <style> .d_b{ height: 20px; width: 10px; display: inline-block; backgroun

ios-如何从视频中提取图片框架(缩略图)

问题描述 如何从视频中提取图片框架(缩略图) 我要从录制视频中提取一张图片,用了下面代码,没实现. AVURLAsset* asset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:videoPath] options:nil]; AVAssetImageGenerator* imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset]; UIImag

qt-Qt里如果一个构件在另外一个构件内部,这个窗体是不是就一定是滑动条和按钮的父对象?

问题描述 Qt里如果一个构件在另外一个构件内部,这个窗体是不是就一定是滑动条和按钮的父对象? qt里如果一个构件在另外一个构件内部,比如一个窗体里包含一个滑动条和一些按钮,那么这个窗体是不是就一定是滑动条和按钮的父对象?而不管他们的基类是否有继承关系? 解决方案 窗体是窗体,控件是控件(构件),窗体有自己的类,控件也有,他们之间没有必然的父子类关系,按钮那些,都属于自己类的对象,而窗体,属于的是窗体类的对象 解决方案二: 不一定 你内部的控件的父窗口可以是一个隐形的Widget或一个Layout