有谁能在dspack控件中的videowindow上面实现鼠标画线??? |
尚未結案
|
jinzihan_009
一般會員 發表:12 回覆:41 積分:10 註冊:2005-07-22 發送簡訊給我 |
|
jinzihan_009
一般會員 發表:12 回覆:41 積分:10 註冊:2005-07-22 發送簡訊給我 |
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
有兩辦法供你參攷:
1、見dspack的demos目錄下的playvideocap,可以把視頻顯示在一個Image上,把videowindow1隱藏,在image上畫線、框是非常簡單的。
2、見despack的demos目錄下的DSVideoWinDowEx下的兩個例子,不用videowindow,而用VideoWinDowEx,注意設置colorkey就可以實現你的要求。
其實dspack自帶的例子中都有的。
祝順心! ==================================
搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
jinzihan_009
一般會員 發表:12 回覆:41 積分:10 註冊:2005-07-22 發送簡訊給我 |
|
jinzihan_009
一般會員 發表:12 回覆:41 積分:10 註冊:2005-07-22 發送簡訊給我 |
我现在遇到一个问题,就是当我在浏览实时图象的image上面任意取得一点颜色值时,发现它的颜色值,每几百豪秒的都不同,即使我的镜头对 着的是一面静止的墙壁,也会有变化,是什么原因?(我用时钟不断的取一点的颜色值)
mycolor := img_1.Canvas.Pixels[x, y];
Edit1.Text:=inttostr(mycolor); 我在image上浏览图象,是参照dspack中demo中的playVideoCap来实现的。我本以为对着静止的物体,颜色值是不会变化的。而当在墙壁前面有 物体经过时,该点的颜色值就会发生变化,从而判断物体经过该点。
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
inzihan_009你好:
你是不是在寫類似與“看門狗”的軟體,需要判斷有無物體經過某一區域?
如果是這樣,我的看法是,不能用絕對變化,應該用相對變化:
肉眼看上去相同的圖像,特別是實時的圖像,很可能會有細小的差別,如果直接用img_1.Canvas.Pixels[x, y]來判斷是否有變化,是不合適的。這些細小的差別很可能由:光線、設備的抖動等等因素造成。
建義用以下的方法來進行判斷:
實時求某一區域的的平均灰度值avgGray,設置一個判斷閾值dGray,如果後一個argGray與前一個argGray的灰度值變化的絕對值大於dGray則認爲有變化,否則認爲無變化。
附求某一點灰度值公式供你參攷:
gray:=round(rgbtRed*0.3) round(rgbtGreen*0.59) round(rgbtBlue*0.11)
祝順心! ==================================
搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
821020
一般會員 發表:2 回覆:1 積分:0 註冊:2005-09-10 發送簡訊給我 |
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
引言: 请问:DELPHI中DSPACK多媒体控件该如何使用? (FilterGraph1、SampleGrabber1、Filter1、ASFWriter1、DSTrackBar1、VideoWindow1、DSVideoWindowEx21) 如果知道,请尽快回复!谢谢!!!! 叶枫to 821020 Dspack中有帮助文件,是英文的,中文的说明书还未出现,而且也有许多的例子可供参考. 祝顺心! ================================== 搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
沙发回答的有些脱裤子放屁之嫌,VideoWindow就有Canvas可以使用了,何苦要加个Image挡路呢?
with VideoWindow.Canvas do begin VideoWindow.ClearBack; // 清除画面上的杂物,不影响电影画面 font.Size:=48; font.Color:=clRED; font.Style:=[fsbold]; font.Name:='黑体'; brush.Style:=bsSolid; Brush.color:=clYellow; Pen.Color:=clBlack; textout(30, 10, 'TEST Draw VideoWindow.Canvas'); end;我用此法作很多事情,包括播放菜单,字幕,还有动画。。。。。 許下第一千零一個願望 有一天幸福會聽我的話 發表人 - japhenchen 於 2005/10/07 14:04:53 |
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
引言: 沙发回答的有些脱裤子放屁之嫌,VideoWindow就有Canvas可以使用了,何苦要加个Image挡路呢?實現的方法固然有好多種,功力深厚的有功力深厚的辦法,像你的。當然也有我這種笨辦法,但說“脱裤子放屁”是不是也太過份了一點? 如果你仔細看過那個例子,就應該知道不是將 > 願聽指教! ================================== 搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!with VideoWindow.Canvas do begin VideoWindow.ClearBack; // 清除画面上的杂物,不影响电影画面 font.Size:=48; font.Color:=clRED; font.Style:=[fsbold]; font.Name:='黑体'; brush.Style:=bsSolid; Brush.color:=clYellow; Pen.Color:=clBlack; textout(30, 10, 'TEST Draw VideoWindow.Canvas'); end;我用此法作很多事情,包括播放菜单,字幕,还有动画。。。。。 許下第一千零一個願望 有一天幸福會聽我的話 發表人 - japhenchen 於 2005/10/07 14:04:53
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
單純就事論事,沒有眨意,請先放下胸口怒氣吧....喝口氣消消氣 其實那個dspack所提供的videowindow已經有提供相應的事件處理,像mousedown,mouseup等等,還有canvas屬性,通常像樓主是想在播放畫面上做標記,或者是有人想在畫面上做字幕,或者寫KTV系統的人想在畫面上出現歌曲列表、播放曲目、或是廣播滾動字幕,這些就用VIDEOWINDOW就可以做相應的處理,而且,畫的東西歸畫的東西,後面正在播放的畫面,絲毫不受任何影響,你隨時可以把剛畫的東西CLEARBACK掉,不會造成畫面閃動,也無需設定透明色.... 放timage可以,但你要有想到哦,萬一畫面放大了,你是不是要做timage的調整,videowindow這東西還可以fullscreen,可是你不見得能抓到fullscreen的範圍,還要去調整這個timage的範圍,是不是變的麻煩了?timage做了什麼動作,後頭的videowindow也還會給你閃一次,有的顯示卡還會給你黑一塊在那里,看起就很奇怪~~~~ 這些是我的經驗談,或許有誤,大家可以一塊討論 至於脫褲子放屁,只是說多此一舉,並不是罵人的話啦~~~ 許下第一千零一個願望
有一天幸福會聽我的話
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
較個汁,不說不快。
首先我並沒有生什麽氣,但不說明一下,搞得好像我是個愛生氣的小鬼一樣,其實我都虛度31了。本來就是一個技術論壇,大家都是爲了學習而來,搞得好像來鬥氣一樣,這是何苦?雖然你技術深厚,星星也多多,但也煩請注意你的用語。 其次我始終認爲解決一個問題有多種辦法,某一種辦法並不見得就可以包打天下,你說呢?難到不是最好的方法就是多此一舉,那Dspack中的PlayVideoCap這個例子寫在那邊是不是也是多此一舉呢? 最後我要說的是,你可能並沒有看那個PlayVideoCap的例子,那個Image並不是放在videowindow上面的,根本不存在你說的什麽畫面閃動、設置透明色之類的事情。以檔次比較低的說法,其實是把視頻流導到了一個TImage中,而在TImage上放任何東西,移入移出任何東西,畫任何東西,幾乎可以爲所欲爲。這大大簡化了處理的難度,對於我這樣的初學者來說也比較容易理解。至於你說的適應視頻的大小,這只要在連接視頻流的時候,取出視頻流的大小設置一下TImage的大小就可以了。對於那些高級的應用,自然就應該找高級的辦法,我可沒有說這種方法是萬能的,應需要而定且適合自己的就是最好的。如果你有看過那個PlayVideoCap的例子,我想就不會對我有這個誤解了,而如果你並沒有仔細看過,就說我多此一舉是不是也太武斷了一些呢? 呵呵,就事論事,就好像人人都說C 牛X,但爲什麽還有人學其他語言呢?借用Beyond之《光輝歲月》中的一句:“繽紛世界閃出的美麗,是因它沒有分開每種色彩”,好了囉嗦一大堆,如有不當之處還請海涵,對於我提出的其他問題,也歡迎你的指教,祝順心! ==================================
搞得懂就答人,搞不懂就問人,沒有人懂還可以問神! 發表人 - woodtiger 於 2005/10/08 21:34:39
------
-=-=-=-=-=-=-=-=-=-=-= Eveything as your wish. |
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
變成口水帖了~(不好意思用上了大陸內地的口語),大家都來拍磚啦 其實跑VMR的方法不失為一種解決方案,但~說真的,VMR比較適合做多視頻片段的混合播放,而對付這類的點、線、圖、文字,則可以用比較直接的方法處理,TVideoWindow.Canvas就是用來做這類事的好方法,除了可以在播放畫面上添加文字,線條、圖塊,甚至動態的從tbitmap、tjpeg複制圖片來顯示,雖然沒辦法像VMR那樣非常流暢的把二個影片片段混合,但對付像字幕,畫面選單,滑鼠事件....應該是足夠了 我想應該很多人都準備西紅柿、蛋,還有大紅磚等著我們了呢 待我有空再做個簡單的選單範例來做簡單的介紹吧 許下第一千零一個願望
有一天幸福會聽我的話
|
WoodTiger
初階會員 發表:35 回覆:90 積分:25 註冊:2003-08-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |