進(jìn)度控制:
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv\cxcore.h>
//記錄滾動(dòng)條的當(dāng)前位置
int g_slider_pos = 0;
//滾動(dòng)條的回調(diào)函數(shù) 參數(shù)int pos 是指當(dāng)前滾動(dòng)條所在位置
void on_changed(int pos)
{
//輸出滾動(dòng)條當(dāng)前所在位置
printf("g_slider_pos is %d \n" , g_slider_pos);
}
int main(int argc, char* argv[])
{
//創(chuàng)建一個(gè)窗口
cvNamedWindow("show");
//在窗口show上創(chuàng)建名字為Position的滾動(dòng)條
cvCreateTrackbar(
"Position",
"show",
&g_slider_pos,
400,
on_changed
);
//顯示滾動(dòng)條
cvShowImage("show",NULL);
//等待用戶按鍵
cvWaitKey(0);
return 0;
}
視頻化的進(jìn)度控制:
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv\cxcore.h>
//聲明一個(gè)CvCapture類型指針 用于接收cvCreateFileCapture的返回值
CvCapture* g_capture = NULL;
//記錄滾動(dòng)條的當(dāng)前位置
int g_slider_pos = 0;
//對(duì)視頻幀進(jìn)行計(jì)數(shù)的變量
int frame_count = 0;
//滾動(dòng)條的回調(diào)函數(shù) 參數(shù)int pos 是指當(dāng)前滾動(dòng)條所在位置
void onTrackbarSlider(int pos)
{
//設(shè)置g_capture的屬性 使得 從位置pos開始播放視頻
cvSetCaptureProperty(
g_capture,
CV_CAP_PROP_POS_FRAMES,
pos
);
//在拉動(dòng)滾動(dòng)條后 保持變量frame_count與滾動(dòng)條的位置是同步的
frame_count = pos ;
}
int main(int argc, char* argv[])
{
//創(chuàng)建一個(gè)窗口
cvNamedWindow("show");
//打開有一個(gè)視頻文件
g_capture = cvCreateFileCapture("C:\\Users\\zxl\\Desktop\\1.avi");
//獲取視頻的總幀數(shù)
int frames = (int)cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_COUNT
);
if(frames>0)
{
//在窗口show上創(chuàng)建名字為Position的滾動(dòng)條
cvCreateTrackbar(
"Position",
"show",
&g_slider_pos,
frames,
onTrackbarSlider
);
}
//圖像指針變量
IplImage* frame;
while(1)
{
//從g_capture獲取一幀圖像 填充到相應(yīng)的內(nèi)存緩沖區(qū)
frame = cvQueryFrame(g_capture);
//如果到視頻結(jié)尾 則退出循環(huán)
if(!frame)
{
break;
}
//顯示圖像
cvShowImage("show",frame);
//接收用戶按鍵
char c = cvWaitKey(33);
//如果接收到 按鍵'Esc' 則退出循環(huán)
if(c==27)
{
break;
}
//滾動(dòng)條 隨著視頻的播放 進(jìn)行移動(dòng)
cvSetTrackbarPos("Position","show", frame_count);
frame_count++;
}
//釋放資源
cvReleaseCapture(&g_capture);
cvDestroyWindow("show");
return 0;
}
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

