【问题标题】:Detect an area of a perticular color using openCV in Android在 Android 中使用 openCV 检测特定颜色的区域
【发布时间】:2013-09-09 10:57:11
【问题描述】:

我使用 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可以用在这件事上。如果有人能告诉我方法,将不胜感激。

【问题讨论】:

    标签: android opencv colors bitmap extract


    【解决方案1】:

    要检测特定颜色的区域,您应该使用 opencv 的 Core.inRange 函数。

    您可以在此处查看代码示例:ANDROID - color detection using openCV - how to?

    【讨论】:

      【解决方案2】:

      我认为,这个任务可以通过一些 blob 库来解决,例如cvBlob也有安卓版cvBlobAndroid

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

      另外,不要在条件(A==colorValue) 中使用精确的颜色分量值比较,而是使用值范围比较(A&gt;minColorValue &amp;&amp; A&lt;maxColorValue)

      【讨论】:

      • 我能否使用您提供的解决方案从此链接中的较大方块(彩票)中提取较小的方块?:stackoverflow.com/questions/16663504/…
      • 您提供的链接已被删除。但如果我理解正确,您可以找到更大的区域,然后在该区域上设置 ROI,然后提取更小的区域/区域。 cvBlob 允许您获得多个颜色区域。
      • 你能提供一个答案吗:stackoverflow.com/questions/18650155/…
      • openCV SDK 提供的示例项目名为“OpenCV Sample - color-blob-detection”,根据颜色识别区域。但不可能提取该区域。你能指导我吗?
      • 你的提取有什么问题?
      猜你喜欢
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 2018-01-24
      • 2021-05-05
      • 1970-01-01
      • 2014-06-25
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多