簡體   English   中英

圖像算法-檢測光

[英]Image algorithm - detection of a light

我有一個懸而未決的問題,但找不到與我的問題完全相似的問題,因此我來了。

我得到了這兩張照片: 藍燈亮了

無藍燈

我想知道某種算法(/或現有插件)是否能夠檢測圖像中間藍光的存在(圖像1)或不存在(圖像2)?

我的主要技能是PHP和Javascript,但如有必要,我也可以使用Java,如果沒有其他方法,甚至可以使用另一種語言...

感謝您提供任何幫助,即使是很小的幫助,也可以向我指出正確的方向。

您可以直接從命令行使用ImageMagick完成一些非常基本的操作,而無需任何代碼。 它已安裝在大多數Linux發行版上,並且可用於OSX和Windows。

基本上,您會尋找藍色通道遠大於紅色或綠色通道且飽和度較高的像素。 您可以這樣做:

convert on.jpg -fx "u.b>(u.g+0.2) && u.b>(u.r+0.2) && saturation>0.6" result.png

在此處輸入圖片說明

而當您針對off圖片運行該圖片時:

convert off.jpg -fx "u.b>(u.g+0.2)&&u.b>(u.r+0.2)&&saturation>0.6" result.png

在此處輸入圖片說明

您可以像這樣計算以上圖像中的白色像素:

convert result.png -format "%[fx:mean*w*h]" info:
1227

因此在on圖像中有1227個像素被標識為亮藍色,在off圖像中有26個像素被標識為亮藍色。

您可以測試兩個圖像,而無需創建我在上面創建的中間輸出文件:

convert off.jpg -fx "u.b>(u.g+0.2)&&u.b>(u.r+0.2)&&saturation>0.6" -format "%[fx:mean*w*h]" info:
26

convert on.jpg -fx "u.b>(u.g+0.2)&&u.b>(u.r+0.2)&&saturation>0.6" -format "%[fx:mean*w*h]" info:
1227

當然,您可能想要欺騙並嘗試我建議的數字。

還要注意,ImageMagick有C,C ++,C#,PHP,Perl,Javascript,Ruby和其他綁定-因此,您實際上可以使用任何一種語言來完成上述所有操作。 或者只是exec()system()以上內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM