Python 对图片进行颜色识别

这篇具有很好参考价值的文章主要介绍了Python 对图片进行颜色识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:在进行压力测试时,需要判断图片的某一块区域是否是黑色

这里使用的是OpenCV库对图片进行颜色的识别,几乎可以识别所有常见的颜色

直接上代码

import cv2
import numpy as np
import collections


class colorList:
    def getColorList(self):
        dict = collections.defaultdict(list)

        # 黑色
        lower_black = np.array([0, 0, 0])
        upper_black = np.array([180, 255, 46])
        color_list = []
        color_list.append(lower_black)
        color_list.append(upper_black)
        dict['黑色'] = color_list

        # 灰色
        lower_gray = np.array([0, 0, 46])
        upper_gray = np.array([180, 43, 220])
        color_list = []
        color_list.append(lower_gray)
        color_list.append(upper_gray)
        dict['灰色'] = color_list

        # 白色
        lower_white = np.array([0, 0, 221])
        upper_white = np.array([180, 30, 255])
        color_list = []
        color_list.append(lower_white)
        color_list.append(upper_white)
        dict['白色'] = color_list

        # 红色
        lower_red = np.array([156, 43, 46])
        upper_red = np.array([180, 255, 255])
        color_list = []
        color_list.append(lower_red)
        color_list.append(upper_red)
        dict['红色'] = color_list

        # 红色2
        lower_red = np.array([0, 43, 46])
        upper_red = np.array([10, 255, 255])
        color_list = []
        color_list.append(lower_red)
        color_list.append(upper_red)
        dict['红色2'] = color_list

        # 橙色
        lower_orange = np.array([11, 43, 46])
        upper_orange = np.array([25, 255, 255])
        color_list = []
        color_list.append(lower_orange)
        color_list.append(upper_orange)
        dict['橙色'] = color_list

        # 黄色
        lower_yellow = np.array([26, 43, 46])
        upper_yellow = np.array([34, 255, 255])
        color_list = []
        color_list.append(lower_yellow)
        color_list.append(upper_yellow)
        dict['黄色'] = color_list

        # 绿色
        lower_green = np.array([35, 43, 46])
        upper_green = np.array([77, 255, 255])
        color_list = []
        color_list.append(lower_green)
        color_list.append(upper_green)
        dict['绿色'] = color_list

        # 青色
        lower_cyan = np.array([78, 43, 46])
        upper_cyan = np.array([99, 255, 255])
        color_list = []
        color_list.append(lower_cyan)
        color_list.append(upper_cyan)
        dict['青色'] = color_list

        # 蓝色
        lower_blue = np.array([100, 43, 46])
        upper_blue = np.array([124, 255, 255])
        color_list = []
        color_list.append(lower_blue)
        color_list.append(upper_blue)
        dict['蓝色'] = color_list

        # 紫色
        lower_purple = np.array([125, 43, 46])
        upper_purple = np.array([155, 255, 255])
        color_list = []
        color_list.append(lower_purple)
        color_list.append(upper_purple)
        dict['紫色'] = color_list

        return dict

    # 处理图片
    def get_color(self):
        print('颜色对比')
        img = cv2.imread('D:\sdcard\XiaLa.png')
        hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
        maxsum = -100
        color = None
        color_dict = colorList().getColorList()
        for d in color_dict:
            mask = cv2.inRange(hsv, color_dict[d][0], color_dict[d][1])
            binary = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY)[1]
            binary = cv2.dilate(binary, None, iterations=2)
            img, cnts = cv2.findContours(binary.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
            sum = 0
            for c in img:
                sum += cv2.contourArea(c)
            if sum > maxsum:
                maxsum = sum
                color = d
        return color


if __name__ == '__main__':
    print(colorList().get_color())

运行结果如下:

Python 对图片进行颜色识别

 

颜色可以判断出来了,可以做的事情就方便很多了

比如在尽行压力测试时,去判断截图区域是否是黑色,是黑色就停止运行,不是则继续。

OK!方便易懂,代码可直接用文章来源地址https://www.toymoban.com/news/detail-510286.html

到了这里,关于Python 对图片进行颜色识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于OpenCV实现对图片及视频中感兴趣区域颜色识别

    学习路线指引(点击解锁) 知识定位 人群定位 🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量

    2023年04月09日
    浏览(62)
  • Jmeter验证码图片识别注册接口压力测试实战_压测时,登录需要传图形验证码

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月22日
    浏览(55)
  • 【Java】使用Apache POI识别PPT中的图片和文字,以及对应的大小、坐标、颜色、字体等

    本文介绍如何使用Apache POI识别PPT中的图片和文字,获取图片的数据、大小、尺寸、坐标,以及获取文字的字体、大小、颜色、坐标。 官方文档:https://poi.apache.org/components/slideshow/xslf-cookbook.html 官方文档和网上的资料介绍的很少,很多元素,需要一点点尝试才能获取到。 注意

    2024年02月12日
    浏览(45)
  • 【Python 之HSV颜色识别】

    2024年02月12日
    浏览(50)
  • 【Python】案例介绍Pytest进行压力测试

    在现代Web应用程序中,性能是至关重要的。为了确保应用程序能够在高负载下正常运行,我们需要进行性能测试。 今天,应小伙伴的提问, 田辛老师来写一个Pytest进行压力测试的简单案例。 这个案例的测试网站我们就隐藏了,不过网站的基本情况是: 阿里云服务器:CentO

    2024年02月07日
    浏览(48)
  • 05预测识别-依托YOLO V8进行训练模型的识别——对视频中的图片进行识别

    在前面的一些章节中,我们已经讲如何准备打标签的素材、如何制作标签、如何训练以及得到我们最终需要的用于YOLO目标识别的模型。那么现在我们就要正式开始,利用我们训练得到的best.pt,这个模型文件来对图片视频进行识别。 公安交管场景中,我们经常会遇到需要对摄

    2024年04月15日
    浏览(43)
  • Python-OpenCV实现简单的颜色识别(对红色和蓝色识别并输出)

    摄像头识别红色和蓝色并框选,当该颜色为摄像头屏幕上大多数颜色时打印出该颜色的名称 新手学习笔记,第一次写博客,若有错误还请指出( ~`_` )~ 2.初始设置  3.图像处理,提取颜色 4.轮廓绘制  5.颜色识别  下面是OpenCV中HSV空间颜色对照表 6.程序主体 下面是程序运行

    2024年02月11日
    浏览(59)
  • TensorFlow进行MNIST数据集手写数字识别,保存模型并且进行外部手写图片测试

    首先,你已经配置好Anaconda3的环境,下载了TensorFlow模块,并且会使用jupyter了,那么接下来就是MNIST实验步骤。 数据集官网下载: MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges http://yann.lecun.com/exdb/mnist/   将上面四个全部下载,都是数据集,其中前两个是训练集,

    2024年02月08日
    浏览(40)
  • 基于颜色进行轮廓分割,基于opencv和python

    1. 阈值调整,交互式的阈值调整,确定上限和下限: 2. 阈值分割,并找到最大轮廓 现根据mask找到所有轮廓 对所有轮廓排序,找到最大的 再对最大轮廓去凸多边形,用来对噪声做过滤。

    2024年02月11日
    浏览(44)
  • 车道线检测|利用边缘检测的原理对车道线图片进行识别

    那么这里博主先安利一些干货满满的专栏了! 这两个都是博主在学习Linux操作系统过程中的记录,希望对大家的学习有帮助! 操作系统Operating Sys https://blog.csdn.net/yu_cblog/category_12165502.html?spm=1001.2014.3001.5482 Linux Sys https://blog.csdn.net/yu_cblog/category_11786077.html?spm=1001.2014.3001.5482 这两

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包