影像擷取後...儲存檔案2

請問各位專家...這是我作的影像存檔的程式..但似乎不能儲存(如圖)...我想作的是影像擷取出來以後..按存檔button將擷取影像儲存起來以後序分析...但似乎不行...是否是因為image type不同的問題....能否幫我解決這問題..謝謝.謝謝!

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

不知道您清不清楚IMAQ與一般二值化影像的差異??另外兩者之間如何儲存BMP與JPG圖檔是有差異的,當然,這也關係到被您儲存後的二值化影像是否可以再被開啟,進行另外的處理!!

請問麟仔先進....我在上圖程式中把case Structure拿掉..是可以直接儲存影像檔在我指定的路徑...但呈現黒黑的影像..擷取到的影像看不到了...可是加入case後卻不能存了...再請問一個問題您說的....IMAQ與一般二值化影像的差異...二直化後的影像...其像素不是0就是1...還是還有什麼差異嗎....謝謝!

….你說到關鍵了喔!! 接下來我來解說一下你的問題:

 

1. 沒有case structure 時可以存檔,加上去後就不能存檔了?? 您有沒有想過,為什麼會這樣呢?? 例如當你的程式執行後,若如你所post的程式來說,外層的case structuretrue時才會作像是影像萃取,二值化,存檔的動作,但是當外層之case structuretrue,你沒有按下存檔鍵時,因為程式在跑完一次影像擷取及二值化的過程後,可能就跳出casetrue的情況,因此沒有多餘的時間再來判斷你有沒有按下存檔的按鈕!! 但是當程式沒有利用case structure,程式會無條件進行存檔,所以可能是這個原因造成的,請您在檢查一下!!!

 

2. 關於二值化影像存檔方面,我依據您post的程式照做了一遍(如下圖),但是當欲將二值化影像存檔時,因為IMAQ的二值化影像像素值為0~1的範圍,而一般的二值化影像(一般預設)的二值化影像範圍為未被正規化的0~255之範圍,所以即使您成功儲存一張被擷取的影像,因為其像素值最大僅為”1”,因此對一般秀圖程式來說,”1”仍是一個偏黑的像素值,所以你會發現你所存檔的圖片是一張全黑影像。

 

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

 

 

 

 <?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

3. 接下來,我們分兩個CASE來說明:

CASE 1:

  採用IMAQ WRITE JEPG FILE.VI ,並將其COLOR PALETTE 設定為”Binary”,如下圖所示!!

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

 

執行後在front panel的結果與儲存的圖檔結果如下:

![|584x293](upload://tGZDjlCWGfHBQs8nOwbdRMWPmCv.jpeg)

 

####pi.jpg結果####

<?:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />![|347x165](upload://iHFsAppiNUJVSzudm0sqMaO084G.jpeg)

 

你可以發現,即使將color palette設定為binary,儲存後的結果仍然是全黑的一張影像!!!

 

若將IMAQ WRITE JEPG FILE.VI換成IMAQ WRITE BMP FILE.VI,其它設定不動,會有什麼結果呢?? (結果如下圖)

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

####pi.bmp結果####

結果發現, 將圖檔設定為bmp圖檔後,就可以儲存圖檔了!!!

所以CASE 1的結論就是,COLOR PALETTE設定為”Binary”,只能存成”bmp”圖檔!!

 

CASE 2:

但是若我非要存成jpg圖檔的話,要如何做呢?? 如果你有用過matlab,c++,vb做過影像二值化的話,你可以發現這些二值化影像都是由黑色(0)”白色(255)”所組成的!!,所以你必須將IMAQ Threshold.viReplace Value必須設定為”255”,將所有imaq二值化影像轉換為一般型態的二值化影像,方法如下:

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

####pi.jpg結果####

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

 

結果發現二值化影像也可以存成jpeg檔了!!!(color palette設不設為binary都可以)

所以CASE 2的結論就是,imaq二值化影像存成jpeg檔前,將像素值回歸至(0~255)的範圍!!!

 

就這樣,有問題再討論!!!