關於 擷取網路攝影機影像 |
尚未結案
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
|
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
恩@@給的程式非常有用︿︿ 雖然還看不懂= ="
正在研究中(不希望只是抓來就用)
而且之後還要改到把資訊 存在陣列 除此之外 有發現一個BUG(因該是= =")
在按開始後 的確可以正常取得網路攝影機資訊
並顯示出來
但是一段時間後 會突然停住
並出現以下資訊
-------------------------------------------------
An errer ocurred while capturing the video image.
The video capture will now be terminated.
並未將物件參考設定為物件的執行個體
------------------------------------------------- 用了兩種不同網路攝影機 都有此情形@@"
目前正在從程式中尋找問題= ="
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
qoo1234
版主 發表:256 回覆:1167 積分:659 註冊:2003-02-24 發送簡訊給我 |
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
我的思考是屬於 整理型
所以我慢慢把我知道的PO出來@@" [關於如何使用此元件]-------------------------------------------------------------
使用準備 :將專案檔[WebCam_Capture.csproj] 放入 要用的專案檔內(就是自己寫的)
使可以於FORM中放入WebCamCapture元件
控制函式 : 為了使圖出現在螢幕上 需要設定事件 "ImageCaptured"
使 ImageCaptured事件為以下
(目前推測 當WebCamCapture.Start時 WebCamImage會成為output)
private void WebCamCapture_ImageCaptured(object source, WebCam_Capture.WebcamEventArgs e)
{
// set the picturebox picture
this.pictureBox1.Image = e.WebCamImage;
} 元件(WebCamCapture)
設定值: WebCamCapture.TimeToCapture_milliseconds // change the capture time frame (千分之一 秒 為單位)
WebCamCapture.FrameNumber //設定???
WebCamCapture.CaptureHeight //設定攝影機取的高
WebCamCapture.CaptureWidth //設定攝影機取的寬 提供的函式:
[開始]
// start the video capture.
// let the control handle(管理 操控 處理) the frame numbers.
this.WebCamCapture.Start(0); 開始後,WebCamImage會開始有資訊 [停止]
// stop the video capture
this.WebCamCapture.Stop();
[在開]
// resume the video capture from the stop
this.WebCamCapture.Start(this.WebCamCapture.FrameNumber);
------------------------------------------------------------------------------
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
關於在按開始後 一段時間 會突然停住
並出現以下資訊
-----------------------------------------------------
- An errer ocurred while capturing the video image. -
- The video capture will now be terminated. -
- 並未將物件參考設定為物件的執行個體 -
-----------------------------------------------------
目前 只知道為
x.WebCamImage = tempImg.GetThumbnailImage(m_Width, m_Height, null, System.IntPtr.Zero);
此行錯誤@@
而且是 執行一段時間才會發生錯誤 根據
private WebCam_Capture.WebcamEventArgs x= new WebCam_Capture.WebcamEventArgs();
此行
我又找到
///
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
(感覺此問題已經變成都是PO我的研究過程了= =") 更深入查錯
將原本
x.WebCamImage = tempImg.GetThumbnailImage(m_Width, m_Height,null, System.IntPtr.Zero);
此行改成
x.WebCamImage = tempImg;
是可以動作的 而且不會跳出錯誤
但是....一段時間後 螢幕將不會出現影像 我的思考邏輯:
1.tempImg.GetThumbnailImage 是為了調整接收後影像的大小 順便餵影像給WebCamImage
因此 如果改成x.WebCamImage = tempImg;
會發現...Form1裡顯示的還是一樣大 只是圖都放大了 就他只做這件是來看 出現錯誤訊息 是因為它無法做這件事
2.又 改成 x.WebCamImage = tempImg; 不會出錯
故 真正問提出於tempImg 整理思緒後 現在問題變成
是何原因 使tempImg過一段時間後 不在存有圖片
(前面已有說 一段時間後 程式還是能動 只是沒圖) PS: 在這之前我去看了 當初下載處的討論
有看到GC.Collect(); //強制所有層帶記憶體回收
只是加入後 沒有改善^^" (\~~/) / 這段間 大約補看完 委派 事件驅動 讀取屬性....(累淚..)
(=..=) < 不看的話連程式解讀都不能..
(_Y__)~@ | 沒想到第一個實例就這麼硬啊... 發表人 - rik 於 2005/08/03 02:24:24 -----------------------------------------------------------------
有人知道
public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam);
中 hWnd 、 wParam 、 lParam
是什麼的簡寫嗎? 謝謝^^" 發表人 - rik 於 2005/08/03 21:33:09
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
[第1條路]
因發現
[DllImport("user32", EntryPoint="OpenClipboard")]
public static extern int OpenClipboard(int hWnd); [DllImport("user32", EntryPoint="EmptyClipboard")]
public static extern int EmptyClipboard(); //放空 [DllImport("user32", EntryPoint="CloseClipboard")]
public static extern int CloseClipboard();
此6行 因此思考點有2
1.是否因為剪貼簿客滿 所以無法讀圖? (其實我連會不會滿都不知道= =)
2.程式中 除了這6行 似乎沒看到把東西放入剪貼簿的動作?
經測試,我自己把EmptyClipboard(); 程式中,結果無異(就是過一段時間還是掛)... [第2條路]
發現一件有趣的事(對我來說啦= =)
一般大家裝網路攝影機時,因該有附有程式可以觀看測試吧^^
這時,拿出那個程式和本程式一起跑,
會發現開一個,另一個就會動不了!
此時0.0 我就先開附的程式,在開此程式。
發現到,之前那個錯誤顯示出來了!而且還會再跳出一個選擇裝置的視窗!
---------------------------------------------------------------------------
[正在走的路]
摸索 API
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
關於之前說的 加入GC.Collect(); 此行
雖然無法解決BUG
但剛剛發現 程式吃的記憶體的確有差
所以有使用剪貼簿 還是要適時執行GC.Collect(); PS:為啥會突然說這個呢= =
因為...我已經瘋狂到 邊執行程式 邊打開 Windows工作管理員
看 處理程序 有啥改變= ="
( 結果是除了多出 此程式執行程序 其他沒改變
也就是執行中不會再開啟其他程序 )
------------------------------------------------------------- http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1340&lngWId=10
再這裡 他們似乎也有討論同樣的問題
看不太懂= =" 看的懂的人 可以大約解釋一下嗎= =" 我只大約看出
攝影機和剪貼簿的關係之類的@@"
好像是攝影機取的圖並不是放在剪貼簿....(不確定 = =") ----------------------------------------------------------
大家可以做個實驗
執行此程式時 打開小畫家 用貼上指令
與
執行買攝影機時附的程式 打開小畫家 用貼上指令 這樣比較後會發現......正式方法(附的程式) 用貼上沒有反應
也就是利用剪貼簿 不是正式方法@@? 發表人 - rik 於 2005/08/10 04:08:47
------
時與不時的撿起身旁的拼圖碎片 不懂的部分 半解的部分 就像一塊拼圖 留於腦中 等待拼出完美解答的一天 這就是我的思路 我的創作方法 而我也接受 這作法所帶來的"代價" - 時間 |
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
|
wzero
一般會員 發表:2 回覆:3 積分:1 註冊:2005-07-30 發送簡訊給我 |
|
rik
一般會員 發表:40 回覆:81 積分:24 註冊:2004-09-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |