提取

2016-02-27 44 views
-1

概述用紅色框的OpenCV(C++)中的圖像的一部分,我有以下圖像example image提取


我需要認識到其內的字符。要做到這一點,我想製作一個面具,除去紅色框外的所有東西。

什麼是我可以用來做到這一點的最佳方法?

目前我使用hsv過濾器來生成蒙版,並使用蒙版將圖像裁剪爲僅紅色正方形。

cvtColor(src, HSV, COLOR_BGR2HSV); 
inRange(HSV, Scalar(H_MIN, S_MIN, V_MIN), Scalar(H_MAX, S_MAX, V_MAX), HSVmask); 
src.copyTo(src2, HSVmask); 

這產生了差的掩模,因爲它有本身取決於如何觀看圖像排除的T,我需要一個更可靠的方法。

- 我想知道是否有辦法在重要的白色區域周圍製作一個盒子,並使用該盒子作爲我的蒙版,但我不確定如何在opencv上實現這個功能。

隨着面具我應用canny邊緣檢測,然後我找到輪廓和填充輪廓。

我的結果 Contour Output and Mask

結果我得到的是不是足夠強大,我非常需要能夠從一個空中視頻飼料檢測在一塊草坪上一個大牌子,所以它需要與合作與不同大小的紅色正方形。

有什麼辦法可以改善這個過程?

字符識別方法尚未確定。

+0

你嘗試過什麼嗎?喜歡:Mat1b面具; inRange(image,Scalar(255,0,0),Scalar(255,0,0),mask); – Miki

回答

0

如果你只是想識別字符

  1. 圖像轉換爲灰度。
  2. 由於字符是白色,圖像的其餘部分是彩色的,灰色圖像中的字符仍然是白色。所以採取一個門檻,並禁止所有非白色像素。
  3. 運行你的分類器來識別字符。

如果你想提取的紅色方塊

  1. 找到紅色像素,然後裁剪圖像。