[問題] 辨識問題 使用OpenCV

看板C_and_CPP (C/C++)作者 (克爾)時間16年前 (2010/04/27 19:51), 編輯推噓15(15033)
留言48則, 6人參與, 最新討論串1/2 (看更多)
各問先進您好 有幾個問題想要請教 小弟現在要在畫面上偵測LED燈的位置; 原本想取畫面中的Blue值去判斷;因為LED為藍色的;不過這個方法不可行 Orz 再來是我利用cvCvtColor將圖片轉成灰階以及利用cvThreshold 轉成黑白希望可以擷取出LED部分的區塊; 這個部份不管Threshold怎麼設,都無法只擷取出LED的部份 所以轉成黑白的圖加入cvFindContours 判斷擷取出來的區塊是否滿足LED區塊 但是這又卡到一個問題 後來發現就是LED燈區塊大小不定 所以取輪廓這個部份無法使用 想請問各位先進 我應該是要針對畫面中LED燈的顏色做判斷吧? 之前的方法好像繞了個大圈 該怎麼做呢?? 有什麼function或是演算法可以利用呢?? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.12.63

04/27 20:00, , 1F
既然你要判斷顏色, 那就直接用彩色的啊幹麻要轉灰階??
04/27 20:00, 1F

04/27 20:00, , 2F
先說說怎樣不行法吧, 你用那個color space?? threshold
04/27 20:00, 2F

04/27 20:01, , 3F
怎麼取的??
04/27 20:01, 3F

04/27 20:24, , 4F
原本以為藍色的部份B值就高 所以取畫面裡面RGB的B值去判
04/27 20:24, 4F

04/27 20:25, , 5F
那接近白色的部份B值不是一樣很高嗎@_@"
04/27 20:25, 5F

04/27 20:26, , 6F
斷但是白色(亮)的部份 B值也很高 所以不行
04/27 20:26, 6F

04/27 20:27, , 7F
V大您是說 直接取畫面藍色的地方嗎? 該怎麼做呢?
04/27 20:27, 7F

04/27 20:28, , 8F
你應該先去讀一下影像處理關於處理彩色影像的部份....
04/27 20:28, 8F

04/27 20:29, , 9F
大至上對Color Space / Model的特性有一點了解以後,
04/27 20:29, 9F

04/27 20:29, , 10F
下一部再去學Color Slicing或Color Matching的方法:)
04/27 20:29, 10F

04/27 20:30, , 11F
懶的話, 就你提供的資訊來說, 背景不複雜的話, 你要的
04/27 20:30, 11F

04/27 20:31, , 12F
藍色應該只有B高, R和G都低, 所以只判斷B是不夠的....
04/27 20:31, 12F

04/27 20:31, , 13F
V大 感謝您的回應 對於影像處理 我是個門外漢
04/27 20:31, 13F

04/27 20:32, , 14F
剩下的, 就自己去研究方法或者有沒有現成套件可以用吧XD
04/27 20:32, 14F

04/27 20:32, , 15F
是因為工作需要 才踏入這個領域 所以請多多指教..謝謝!
04/27 20:32, 15F

04/27 20:37, , 16F
http://0rz.tw/484KH 我們老師說這本書算是影像處理中
04/27 20:37, 16F

04/27 20:38, , 17F
的經典書, 另外它也有中譯的版本, 印象中Ch6是講彩色影
04/27 20:38, 17F

04/27 20:39, , 18F
像處理?? 確切的章節, 書要回家找找看....XD
04/27 20:39, 18F

04/27 20:42, , 19F
http://0rz.tw/b52Qm 這本是以前看過鍾國亮教授寫的原
04/27 20:42, 19F

04/27 20:43, , 20F
生中文書覺得還不錯, 不過我看的好像沒到第四版就是:)
04/27 20:43, 20F

04/27 20:51, , 21F
V大 我剛想了一下 不知道我這樣想對不對 就是我先評估
04/27 20:51, 21F

04/27 20:52, , 22F
我要偵測的是圖像內LED燈的RGB 大約會座落的區塊例如
04/27 20:52, 22F

04/27 20:52, , 23F
( 70<R<100 70<G<100 200<B<230) 利用二分法
04/27 20:52, 23F

04/27 20:53, , 24F
比如滿足這個部份設為RGB(255,255,255) 最後在偵測此白
04/27 20:53, 24F

04/27 20:53, , 25F
色區塊有幾個就是我要的LED區域個數了 請問這樣可行嗎?
04/27 20:53, 25F

04/27 20:54, , 26F
B/(R+G+B) + "H"SV
04/27 20:54, 26F

04/27 20:57, , 27F
Apple大 我了解 B/(R+G+B)的用意 但是 + "H"SV的意義是?
04/27 20:57, 27F

04/27 20:59, , 28F
舉例一種 color space 可以考慮用 H 分布的範圍去取
04/27 20:59, 28F

04/27 21:00, , 29F
只是我以前有這樣用過,也許有其他更適合你的色彩空間
04/27 21:00, 29F

04/27 21:01, , 30F
了解 謝謝!!
04/27 21:01, 30F

04/27 21:05, , 31F
您客氣了~~不過 我想您也許還要一些去雜訊的過程就是了
04/27 21:05, 31F

04/27 21:07, , 32F
建議二分之後就自己用bool或int array存不必一直用原來
04/27 21:07, 32F

04/27 21:08, , 33F
那塊RGB三byte的空間存, 除非你還需要原來的顏色資訊:)
04/27 21:08, 33F

04/27 21:12, , 34F
了解 感謝大師提點
04/27 21:12, 34F

04/27 21:18, , 35F
啊, 如果你後續還要用OpenCV的處理會需要它能接受的資料
04/27 21:18, 35F

04/27 21:18, , 36F
儲存方式, 就照它的吧:)
04/27 21:18, 36F

04/27 21:18, , 37F
不過是以前修過課通通要練習自己寫的前學生罷了Orz
04/27 21:18, 37F

04/27 21:22, , 38F
V 大有興趣把使用 OpenCV 的經驗整理一下嗎? ^_^
04/27 21:22, 38F

04/27 21:23, , 39F
然後 po 上來~~可以造福新手~~
04/27 21:23, 39F

04/27 22:13, , 40F
我以前沒有用OpenCV說, 讀寫BMP, Winodow Programing的
04/27 22:13, 40F

04/27 22:13, , 41F
部份等全部是用BCB6提供的東西兜的; 然後基本的灰階影像
04/27 22:13, 41F

04/27 22:14, , 42F
與彩色影像處理就照書上教的自己練習寫這樣. 回想當時開
04/27 22:14, 42F

04/27 22:14, , 43F
WebCam/AVI等都要拿學長研究半天的東西來做, 現在知道有
04/27 22:14, 43F

04/27 22:15, , 44F
OpenCV這種Tool Chain, 真是令人感到不勝唏噓啊....Orz
04/27 22:15, 44F

04/28 00:56, , 45F
04/28 00:56, 45F

04/28 00:56, , 46F
類似這樣的東西或許我能給你一些幫助
04/28 00:56, 46F

04/28 09:04, , 47F
彩色影像處理要先把亮度資訊清除
04/28 09:04, 47F

04/28 09:18, , 48F
關於到顏色偵測的 都不建議用RGB 用HSV YCbCr都可
04/28 09:18, 48F
文章代碼(AID): #1Bri_5yz (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Bri_5yz (C_and_CPP)