交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • python opencv根据颜色进行目标检测的方法示例

    颜色目标检测就是根据物体的颜色快速进行目标定位。使用cv2.inRange函数设定合适的阈值,即可以选出合适的目标。

    建立项目colordetect.py,代码如下:

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    
    import numpy as np
    import cv2
    
    def colorDetect():
     image = cv2.imread('./1.png')
     # 使用RGB颜色空间检测红 蓝 黄 灰,设置合适的阈值
     boundaries = [
     ([17, 15, 100], [50, 56, 200]),
     ([86, 31, 4], [220, 88, 50]),
     ([25, 146, 190], [62, 174, 250]),
     ([103, 86, 65], [145, 133, 128])
     ]
    
     for lower, upper in boundaries:
     lower = np.array(lower, dtype='uint8')
     upper = np.array(upper, dtype='uint8')
     # 低于lower和高于upper的像素为黑色,lower-upper之间的像素为白色
     mask = cv2.inRange(image, lower, upper)
     # 利用蒙版,进行图像的逻辑与运算
     output = cv2.bitwise_and(image, image, mask=mask)
    
     cv2.imshow('image', np.hstack([image, output]))
     cv2.waitKey(0)
     cv2.destroyAllWindows()
    
    def main():
     colorDetect()
    
    if __name__ == "__main__":
     main()
    

    定义RGB颜色列表:

    boundaries = [
     ([17, 15, 100], [50, 56, 200]),
     ([86, 31, 4], [220, 88, 50]),
     ([25, 146, 190], [62, 174, 250]),
     ([103, 86, 65], [145, 133, 128])
    ]
    

    该部分([17, 15, 100], [50, 56, 200]),表示图像像素R>=100, B>=15, G>=15和R<=200, B<=56, G<=50的像素将视为红色。

    执行代码,结果如下:

    总结

    要检测图像中颜色,第一件事要做的就是定义像素值的上限和下限。不同的颜色空间具有不同上下限值,定义了上限和下限后,就可以调用cv2.inRange方法返回一个mask,将该mask与图像进行逻辑与bitwise_and就可以得到该图像。

    参考资料
    https://www.pyimagesearch.com

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持北冥有鱼。


    广而告之:
    热门推荐:
    纯JavaScript实现的分页插件实例

    本文实例讲述了纯JavaScript实现的分页插件。分享给大家供大家参考。具体如下: //总条数(必填) var Num=Number(<?php echo $count;?>) //当前页(必填) var index = Number(<?php echo $page;?>); /* //每页的条数(可选,默认每页10条) */ var···

    vue devtools的安装与使用教程

    一.在github上下载压缩包,github下载地址:https://github.com/vuejs/vue-devtools 二.解压到本地的某盘 三.用你的npm中进入该文件夹下 四.依次输: 1:npm install 2:npm run build         (这一步一定不要忘了,没有执行这一步的话···

    拖动table标题实现改变td的大小(css+js代码)

    复制代码 代码如下: <html> <title>拖动列宽的表格</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style type="text/css"><!-- .bg td{ font-size:12px; text-align:left; line-height:15px; height···

    手机浏览器Viewport 参数(web前端设计)

    手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。移动版的&···

    DedeCMS织梦模板从gbk转utf8编码的方法教程

    对于DEDECMS模板来说,一般有2种编码格式gb2312和UTF-8,现在我们以gbk转utf8为例来给大家讲解一个简单的转换方法:   第一步、我们使用记事本或者editplus打开需要转换的模板文件,我们这里使用的是editplus(工具在百度找一下)工具来转换,如下图一。 把模板内容里的···

    thinkphp实现分页显示功能

    先上效果图,突然发现和B站上一样 IndexController.class.php代码如下 public function index(){ $m=M('Info'); $count = $m->where($where)->count(); $pageCount = 10;//每页显示数量 $page = new \Think\Page($count , $pageCount); $page···

    CSS 布局一个漂亮的滑块

    好好看看代码,相信会对你帮助不少。 CSS布局一个漂亮的滑块 dl { margin: 0; padding: 0; } dt { position: relative; clear: both; display: block; float: left; width: 104px; height: 20px; line-height: 20px; margin-right: 17px; font-size: .75em; text-align···

    网页制作关于HTML格式和长文件的建议

      相关文章:网页内容页面制作的9个实用建议        网页页面设计的4个实用建议        网页布局的9个建议   HTML格式   1、应避免使用交叉标记。不同的浏览器对交叉标记的反映会不同。   2、使用交织 GIF 和 Jpeg 。因为交织图像是分级显示出来的&mdash···

    JS 终止执行的实现方法

    (一)在function里面 (1)return; (2)return false; (二)非function方法里面 alert("before error."); throw SyntaxError(); alert("after error."); 以上就是小编为大家带来的JS 终止执行的实现方法全部内容了,希望大家多多支持北冥有鱼~ 您可能感兴趣的文章: 中止javascr···

    js中把JSON字符串转换成JSON对象最好的方法

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。   第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请···