我使用android的相机功能并以位图的形式捕获图像。我尝试使用以下方法从捕获的图像中提取某种颜色的区域(红色,粉红色,蓝色,黄色)但是没有成功:
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可以用在这件事上。如果有人能告诉我的方式,我将非常感激。
答案 0 :(得分:1)
我认为,这个任务可以用一些blob库解决,例如cvBlob还有Android版cvBlobAndroid。
当您尝试从头开始时,最好将图像转换为更方便的色彩空间,例如HSV,CIELab等
此外,请勿在条件(A==colorValue)
中使用精确的颜色分量值比较,而是使用值范围比较(A>minColorValue && A<maxColorValue)
。
答案 1 :(得分:1)
要检测特定颜色的区域,您应该使用opencv的Core.inRange函数。
您可以在此处查看代码示例:ANDROID - color detection using openCV - how to?