自動擷取圖片並顯示

各位前輩大家好:

之前我有在論壇發問過相似的問題,感謝JD前輩的幫忙才順利解決,

http://labview360.com/forum/forum_posts.asp?TID=9041&TPN=1

這次要改用自動的方式取擷取CCD影像,我修改了JD前輩給的範例做了兩個程式,Q1程式是有加迴圈,Q2沒有,但這兩個方式都有問題,想請前輩們給我點意見!

我的目的主要是當CCD移動到特定位置上時,程式自動擷取一張圖並存起來。

謝謝您們!

PS:抱歉我不知道為什麼現在網站不讓我上傳圖片和檔案,晚點我在補上。

[QUOTE=a710756]

各位前輩大家好:

之前我有在論壇發問過相似的問題,感謝JD前輩的幫忙才順利解決,

http://labview360.com/forum/forum_posts.asp?TID=9041&TPN=1

這次要改用自動的方式取擷取CCD影像,我修改了JD前輩給的範例做了兩個程式,Q1程式是有加迴圈,Q2沒有,但這兩個方式都有問題,想請前輩們給我點意見!

我的目的主要是當CCD移動到特定位置上時,程式自動擷取一張圖並存起來。

謝謝您們!

PS:抱歉我不知道為什麼現在網站不讓我上傳圖片和檔案,晚點我在補上。

[/QUOTE]

補上程式和圖片!

Q1.vi

Q2.vi

給你一些錯誤提示.你試著修改成下圖看看.

Q1Q2.rar

JD39580.6553472222

[QUOTE=JD]

給你一些錯誤提示.你試著修改成下圖看看.

Q1Q2.rar

[/QUOTE]

很謝謝JD前輩給我的提示!

但是...不好意思!我還是解不出來! = =|||

不知道前輩您是否願意再給點提示?謝謝您!

另外,當我在執行我提供的Q1.vi時,按下自動快照,結果我就無法去設定"模擬位置"了,而且連畫面都不變動,就像當掉了一樣,不曉的這是什麼情形?(我原本寫好程式,在RUN時就會出現這種現象!)

我不懂您 模擬位置 跟 位置1 ~ 4 有啥功能. 

所以我自己用USB Cam 擷取測試.您參考看.

USB_CCD_Example.vi

[QUOTE=JD]

我不懂您 模擬位置 跟 位置1 ~ 4 有啥功能. 

所以我自己用USB Cam 擷取測試.您參考看.

USB_CCD_Example.vi

![](upload://k9ENfjlXDrOYUfQd2PoycYJGiFf.jpeg)

[/QUOTE]

JD前輩,我在問題中並沒有說清楚,造成您的困擾,我很抱歉!

由於我的CCD會架在馬達上讓它移動,"位置1 ~ 4" 是設定當CCD移動到這些位置某一個的時候,程式擷取影像並儲存(我會有位置的訊號輸入到程式裡),而"模擬位置"則是模擬位置訊號的輸入,所以如果程式運作正常的話,當我一直調整模擬位置的數值時,只要調整的數值和位置1~4中其中一個相同,就會擷取一張圖片。

謝謝JD前輩的熱心回應!

那請問一下.

當您馬達定位後

要自動拍照呢?還是要透過人工方式 按拍照呢?

 

您是要按拍照後..馬達依序1,2,3,4 定位,並擷取4張影相存檔.(建議按拍照時觸發事件後利用 Loop 執行)

還是你輸入馬達位置 擷取 一張 影相存檔. (建議用輸入馬達位置時觸發事件 event )

 

JD39580.7433912037

[QUOTE=JD]

那請問一下.

當您馬達定位後

要自動拍照呢?還是要透過人工方式 按拍照呢?

 

您是要按拍照後..馬達依序1,2,3,4 定位,並擷取4張影相存檔.(建議按拍照時觸發事件後利用 Loop 執行)

還是你輸入馬達位置 擷取 一張 影相存檔. (建議用輸入馬達位置時觸發事件 event )

 

[/QUOTE]

JD前輩您好:

謝謝您的寶貴意見!

當我馬達定位後,我是要程式能夠自動拍照,就像您所提到的第一點,我先設定"位置1~4"的數值,然後按下"自動快照"後,如果我已把CCD裝上馬達的話,CCD就會開始移動,當移動到我設定的位置時,馬達會停一下,讓程式擷取一張圖片,然後再到下一位置繼續同樣的動作。

所以,依前輩您所講的我需要"按拍照時觸發事件後利用 Loop 執行"?

我先試試看,有問題在請教您!

謝謝您!

a71075639581.3527546296

[QUOTE=JD]

您是要按拍照後..馬達依序1,2,3,4 定位,並擷取4張影相存檔.(建議按拍照時觸發事件後利用 Loop 執行)

還是你輸入馬達位置 擷取 一張 影相存檔. (建議用輸入馬達位置時觸發事件 event )

[/QUOTE]

JD前輩您好:

我針對您的建議"按拍照時觸發事件後利用 Loop 執行",我做了一個程式,利用For Loop去執行1000次來判斷"模擬位置"是否等於"位置1~4",在run的時後,程式並沒有執行我設定的"自動快照"功能,可以說是完全沒有作用,可是,我把程式燈炮點量一步一步去看它執行時,卻可以正常動作,請問JD前輩或是其他的前輩們,怎麼會這樣?

謝謝您們!

Q4 ForLoop 展開 USB.vi

a71075639581.4069444444

燈炮點亮可以正常動作. 那你放個delay time.........

不過我的邏輯跟您的邏輯大不同.

我的意思是馬達依序1,2,3,4 定位 Loop N = 4 

為何你的 Loop N =1000 ? 搞不懂您的邏輯.

我有點懷疑...您的執行程序是否跟我想的一樣呢?

我重新修改了程式碼您參考參考.

當按下 "自 動 快 照" 後, Boolean 亮綠燈 , 模擬位置與 位置1~4 作判斷

假設

模擬位置 = 位置1 -> 儲存 位置1 圖檔...以此類推..

否 Boolean 燈滅

重複 執行 "自 動 快 照" OR 結束.

 

USB Cam Example.vi

![](upload://dYa9ODnSae0Vae0kbKzRf0tECN1.jpeg)

當按下 "自 動 快 照" 後,  馬達依Array 順序1,2,3,4 (模擬位置)執行判斷 位置1~4 若符合 則影相存檔.

補充 delay time = 300 只是模擬訊號輸入時間差.

實際需依你馬達移動後,訊號輸入再跟影像擷取來搭配設計架構.

![](upload://7s3ZtWZ0sLLHjIv1Q0wOa9EnM9.jpeg)

 

JD39581.6117013889

[QUOTE=JD]

當按下 "自 動 快 照" 後,  馬達依Array 順序1,2,3,4 (模擬位置)執行判斷 位置1~4 若符合 則影相存檔.

補充 delay time = 300 只是模擬訊號輸入時間差.

實際需依你馬達移動後,訊號輸入再跟影像擷取來搭配設計架構.

[/QUOTE]

JD前輩,您真的是很熱心的幫忙,讓我很感動!謝謝您!

我有將您上面給的程式改成1394CCD用的,在run的時後,我沒辦法去輸入模擬位置(感覺像當掉了一樣),後來我將程式裡的模擬位置放到迴圈哩,是可以改模擬數值,但是調了數值也沒有發揮擷取圖片的功能,不曉的我是不是在修改程式時,改掉了JD前輩的程式重要部份,所以才不會有作用?

USB_Cam_Example to 1394.vi

還有,我把原本的for loop執行4次改成1000的原因是想說,當我按下自動快照鈕後,要讓程式一直判別"模擬位置"是否等於"位置1~4",就好像是while loop的功能,但是如果我用while loop去做的話,程式就會在當我按下自動快照鈕後,就完全呈現當掉的狀態,所以我才將4改成1000。

![](upload://v9dVcMz2OxHSCzLnixY1nvfpDa1.jpeg)

我後來又另外做了一個程式,沒有用到事件觸發結構,程式的自動快照鈕,按下去是ON,要再按一下才變成OFF。run的時候,當自動快照鈕下,就一直在做"模擬位置"是否等於"位置1~4"的判斷,我試了一下,初步接近我要的,但是,出現一個問題,就是:當模擬位置(假設是10)等於某一位置時(假設是10),下面所顯示的擷取影像還會動,當模擬位置調成11時,才是靜止的畫面,這跟我要的不同,我當的是模擬位置等於某一位置時,所擷取的是靜態的圖片,請問前輩們這要如何修改?

謝謝您們!

Q4 展開.vi

若依您說明

我所理解的是

當您按下" 自動快照 " 觸發事件後. 你手動去調整更改"模擬位置"參數.因為您想模擬CCD位置.

但是當您調整模擬位置時對整個流程來說它是一個 觸發事件.

若在 Loop 程序中是偵測不到的.因為跑一次迴圈 1ms.

以你手動去調整更改 模擬位置參數 的速度是根本無法觸發事件.

所以你會覺得 當機了.

JD39581.726712963

[QUOTE=JD]

若依您說明

我所理解的是

當您按下" 自動快照 " 觸發事件後. 你手動去調整更改"模擬位置"參數.因為您想模擬CCD位置.

但是當您調整模擬位置時對整個流程來說它是一個 觸發事件.

若在 Loop 程序中是偵測不到的.因為跑一次迴圈 1ms.

以你手動去調整更改 模擬位置參數 的速度是根本無法觸發事件.

所以你會覺得 當機了.

[/QUOTE]

JD前輩,對不起,這是我表達不清楚,造成您的誤解,我感到抱歉!

謝謝前輩您熱心的指教!