2013-09-05 74 views
0

我使用android的摄像头功能并以位图的形式捕捉图像。我试着用下面的方法来提取从拍摄的图像中特定的颜色(红色,粉色,蓝色,黄色)的区域,但没有成功:在Android中使用openCV检测特定颜色的区域

for(int i=0;i<bitmap.getWidth();i++){ 
for(int j=0;j<bitmap.getHeigth();j++){ 
    int pixel = bitmap.getPixel(i,j); 
    if(pixel == Color.RED){ 
     //create new image 
    } 
} 
} 

我认识了OpenCV的可以在这件事情中使用。如果有人能向我展示它将不胜感激的方式。

回答

1

我认为,这个任务可以用一些blob库来解决,例如, cvBlob还有android版本cvBlobAndroid

而当您尝试从头开始时,最好将图像转换为更方便的颜色空间,例如HSV,的CIELab等

另外,不使用精确的色彩分量在条件(A==colorValue)值comparsion,使用值的范围comparsion代替(A>minColorValue && A<maxColorValue)

+0

我将能够使用您所提供的解决方案?:http://stackoverflow.com来提取在这个环节较大方形(彩票)的小广场/ questions/16663504/extract-text-from-a-captured-image?noredirect = 1#comment23973954_16663504 – TharakaNirmana

+0

您提供的链接已被删除。但是如果我理解你是正确的,你可以找到更大的区域,然后在这个区域设置ROI,然后提取更小的区域/区域。 cvBlob允许你获得多个颜色区域。 –

+0

你能否提供这样的答案:http://stackoverflow.com/questions/18650155/extract-a-rectangular-area-from-a-bitmap-in-android-using-opencv – TharakaNirmana