線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3466
推到 Plurk!
推到 Facebook!

有谁能在dspack控件中的videowindow上面实现鼠标画线???

尚未結案
jinzihan_009
一般會員


發表:12
回覆:41
積分:10
註冊:2005-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-16 11:33:04 IP:219.148.xxx.xxx 未訂閱
有谁能在dspack控件中的videowindow上面实现鼠标画线,这个画线的前提是videowindow里面已经有实时的浏览图象,我希望在它的上面能用鼠标任意位置画线,但并不影响浏览图象。
jinzihan_009
一般會員


發表:12
回覆:41
積分:10
註冊:2005-07-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-17 08:52:39 IP:219.148.xxx.xxx 未訂閱
我想了个方法是在videowindow上放一个透明的image,在image上面画线,我在两个重合的iamge上面测试过,上面的为透明,可以实现鼠标画线,不过当我在videowindow上放image时,image总在下面,而videowindow总在上面,所以不能在image上面画线,而我写了下面的代码,更改前后位置,还是没有作用,郁闷啊 videowindow1.SendToBack; image1.BringToFront;
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-18 11:11:25 IP:60.191.xxx.xxx 未訂閱
有兩辦法供你參攷: 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-19 11:49:33 IP:219.148.xxx.xxx 未訂閱
非常感谢楼上的回复,我都不知道说什么好了,总之你真是太伟大了,我的问题已经解决了,就是按照你说的第一个方法。 再次感谢,愿你工作顺利。永远开心。永远永远快乐!!!
jinzihan_009
一般會員


發表:12
回覆:41
積分:10
註冊:2005-07-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-23 11:46:51 IP:219.148.xxx.xxx 未訂閱
我现在遇到一个问题,就是当我在浏览实时图象的image上面任意取得一点颜色值时,发现它的颜色值,每几百豪秒的都不同,即使我的镜头对 着的是一面静止的墙壁,也会有变化,是什么原因?(我用时钟不断的取一点的颜色值) mycolor := img_1.Canvas.Pixels[x, y]; Edit1.Text:=inttostr(mycolor); 我在image上浏览图象,是参照dspack中demo中的playVideoCap来实现的。我本以为对着静止的物体,颜色值是不会变化的。而当在墙壁前面有 物体经过时,该点的颜色值就会发生变化,从而判断物体经过该点。
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-23 13:59:00 IP:60.191.xxx.xxx 未訂閱
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-09-10 09:38:30 IP:61.132.xxx.xxx 未訂閱
请问:DELPHI中DSPACK多媒体控件该如何使用? (FilterGraph1、SampleGrabber1、Filter1、ASFWriter1、DSTrackBar1、VideoWindow1、DSVideoWindowEx21) 如果知道,请尽快回复!谢谢!!!! 叶枫
------
叶枫
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-09-11 12:44:47 IP:220.192.xxx.xxx 未訂閱
引言: 请问:DELPHI中DSPACK多媒体控件该如何使用? (FilterGraph1、SampleGrabber1、Filter1、ASFWriter1、DSTrackBar1、VideoWindow1、DSVideoWindowEx21) 如果知道,请尽快回复!谢谢!!!! 叶枫
to 821020 Dspack中有帮助文件,是英文的,中文的说明书还未出现,而且也有许多的例子可供参考. 祝顺心! ================================== 搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-10-07 14:03:24 IP:219.134.xxx.xxx 未訂閱
沙发回答的有些脱裤子放屁之嫌,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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-10-07 14:08:05 IP:219.134.xxx.xxx 未訂閱
用Timage控件挡路的方法不是不可用,而是那个控件你还得去设置一下透明色,不然你会见到一个很讨厌的框挡在面前....... 許下第一千零一個願望 有一天幸福會聽我的話
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-10-08 12:41:41 IP:60.191.xxx.xxx 未訂閱
引言: 沙发回答的有些脱裤子放屁之嫌,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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-10-08 14:38:08 IP:219.133.xxx.xxx 未訂閱
單純就事論事,沒有眨意,請先放下胸口怒氣吧....喝口氣消消氣 其實那個dspack所提供的videowindow已經有提供相應的事件處理,像mousedown,mouseup等等,還有canvas屬性,通常像樓主是想在播放畫面上做標記,或者是有人想在畫面上做字幕,或者寫KTV系統的人想在畫面上出現歌曲列表、播放曲目、或是廣播滾動字幕,這些就用VIDEOWINDOW就可以做相應的處理,而且,畫的東西歸畫的東西,後面正在播放的畫面,絲毫不受任何影響,你隨時可以把剛畫的東西CLEARBACK掉,不會造成畫面閃動,也無需設定透明色.... 放timage可以,但你要有想到哦,萬一畫面放大了,你是不是要做timage的調整,videowindow這東西還可以fullscreen,可是你不見得能抓到fullscreen的範圍,還要去調整這個timage的範圍,是不是變的麻煩了?timage做了什麼動作,後頭的videowindow也還會給你閃一次,有的顯示卡還會給你黑一塊在那里,看起就很奇怪~~~~ 這些是我的經驗談,或許有誤,大家可以一塊討論 至於脫褲子放屁,只是說多此一舉,並不是罵人的話啦~~~ 許下第一千零一個願望 有一天幸福會聽我的話
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-10-08 21:14:42 IP:219.82.xxx.xxx 未訂閱
較個汁,不說不快。 首先我並沒有生什麽氣,但不說明一下,搞得好像我是個愛生氣的小鬼一樣,其實我都虛度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

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-10-10 12:28:45 IP:219.134.xxx.xxx 未訂閱
變成口水帖了~(不好意思用上了大陸內地的口語),大家都來拍磚啦 其實跑VMR的方法不失為一種解決方案,但~說真的,VMR比較適合做多視頻片段的混合播放,而對付這類的點、線、圖、文字,則可以用比較直接的方法處理,TVideoWindow.Canvas就是用來做這類事的好方法,除了可以在播放畫面上添加文字,線條、圖塊,甚至動態的從tbitmap、tjpeg複制圖片來顯示,雖然沒辦法像VMR那樣非常流暢的把二個影片片段混合,但對付像字幕,畫面選單,滑鼠事件....應該是足夠了 我想應該很多人都準備西紅柿、蛋,還有大紅磚等著我們了呢 待我有空再做個簡單的選單範例來做簡單的介紹吧 許下第一千零一個願望 有一天幸福會聽我的話
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-10-10 13:47:30 IP:60.191.xxx.xxx 未訂閱
I真是服了YOU了,打住吧,又是口水又是拍磚的,真是豈敢豈敢! ================================== 搞得懂就答人,搞不懂就問人,沒有人懂還可以問神!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
系統時間:2024-03-29 14:26:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!