python 提取出图片特定区域的平均rgb值

这篇具有很好参考价值的文章主要介绍了python 提取出图片特定区域的平均rgb值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先原图如下:需要提取出十字架顶端的四个圆区域带颜色的平均rgb值,如果是白色的就不参与计算
python 提取出图片特定区域的平均rgb值

import cv2
import numpy as np
import imagesize
from PIL import Image
import matplotlib.pyplot as plt

def mean_rgb(path,left, upper, right, lower):
    """
        所截区域图片保存
    :param path: 图片路径
    :param left: 区块左上角位置的像素点离图片左边界的距离
    :param upper:区块左上角位置的像素点离图片上边界的距离
    :param right:区块右下角位置的像素点离图片左边界的距离
    :param lower:区块右下角位置的像素点离图片上边界的距离
     故需满足:lower > upper、right > left
    """
    img = Image.open(path)  # 打开图像
    box = (left, upper, right, lower) #需要裁剪的图片区域
    roi = img.crop(box)
    rgb_im = roi.convert('RGB')

    # #展示裁剪后的图片区域
    # plt.imshow(roi)
    # plt.axis('off')
    # plt.show()
    
    #计算裁剪后的图片区域的平均rgb值
    s1=[]
    s2=[]
    s3=[]
    (w,h)=rgb_im.size

    for i in range(w):  #
        for j in range(h):
            r, g, b = rgb_im.getpixel((i, j)) #读取每一点的RGB值
            #黑色rgb(0,0,0),s1\s2\s3中均不包含黑色区域的rgb值
            if r>0:
                s1.append(r)
            if g>0:
                s2.append(g)
            if b>0:
                s3.append(b)
    #计算平均r值
    if len(s1)==0 :
        r_mean=0
    else:
        r_mean=np.mean(s1)
    #计算平均g值
    if len(s2)==0:
        g_mean=0
    else:
        g_mean=np.mean(s2)
    #计算平均b值
    if len(s3)==0:
        b_mean=0
    else:
        b_mean=np.mean(s3)
    print(r_mean,g_mean,b_mean) #输出rgb平均值   


src = cv2.imread(r"2.jpg")#这里原图像路径,cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255
# cv2.namedWindow("input", cv2.WINDOW_AUTOSIZE)
# cv2.imshow("input", src)
"""
提取图中的圆
"""
hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)#BGR转HSV
low_hsv = np.array([10,40,46])#这里要根据HSV表对应,填入三个min值
high_hsv = np.array([165,255,255])#这里填入三个max值
mask = cv2.inRange(hsv,lowerb=low_hsv,upperb=high_hsv)#提取掩膜

mask_img = cv2.add(src, np.zeros(np.shape(src), dtype=np.uint8), mask=mask)
#这个是把掩模图和原图进行叠加,获得原图上掩模图位置的区域
mask_img=cv2.cvtColor(mask_img,cv2.COLOR_BGR2BGRA)


# cv2.imshow("image",mask_img)
cv2.imwrite('result1.png',mask_img)
# cv2.waitKey(0)
# cv2.destroyAllWindows()


#分别求四个圆区域的平均rgb值
Dir='result1.png'
w,h=imagesize.get(Dir) #w为图片宽度,h为图片高度
print("最左侧圆区域的rgb平均值")
mean_rgb(Dir,0,0,round(w/3),h)
print("最右侧圆区域的rgb平均值")
mean_rgb(Dir,round(2*w/3),0,w,h)
print("最上面圆区域的rgb平均值")
mean_rgb(Dir,0,0,w,round(h/3))
print("最下面圆区域的rgb平均值")
mean_rgb(Dir,0,round(2*h/3),w,h)

输出结果如下:
python 提取出图片特定区域的平均rgb值文章来源地址https://www.toymoban.com/news/detail-502563.html

到了这里,关于python 提取出图片特定区域的平均rgb值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【批量区域识别内容重命名】批量识别图片区域文字并重命名,批量图片部分识别内容重命文件,PDF区域识别提取重命名

    我们在工作和生活中经常遇到这样的需求:比如将以下的图片区域识别进行重命名,批量识别后改成以时间和工作内容重命名,便于日后检索,快速查询 首先我们拍摄照片用到的是水印相机,这里的文字呢我们需要加个背景,这样在文字识别就很容易的被识别,准确率也非常

    2024年04月25日
    浏览(40)
  • python提取文件中特定字符串

    目录 1. Python3文件操作 1.1 打开和关闭文件 1.1.1 open( ) 函数 1.1.2 close( ) 函数 1.2  读写文件 1.2.1 write( ) 函数 1.2.2 read( ) 函数 2. 提取文件中特定字符串 代码如下(示例): 1.1.1 open( ) 函数 1.1.2 close( ) 函数   注意: 使用 open() 方法一定要保证关闭文件对象,即调用 close(

    2024年02月04日
    浏览(39)
  • Python从txt文件中提取特定数据

    本段代码用于,想要从一段txt文件中只提取目标数据的情况。 函数参数解释: txt_path 文件路径 epoch 这份文本文件中要提取出的数据个数,默认100 target 目标数据的前缀 target_data_len 目标数据的长度,默认为5 返回值,列表数据 txt文档内容: 使用: 输出:

    2024年02月11日
    浏览(31)
  • OpenCV学习笔记 | ROI区域选择提取 | Python

            ROI区域是指图像中我们感兴趣的特定区域,OpenCV提供了一些函数来选择和提取ROI区域,我们可以使用OpenCV的鼠标事件绑定函数,然后通过鼠标操作在图像上绘制一个矩形框,该矩形框即为ROI区域。本文将介绍代码的实现以及四个主要函数 cv2.setMouseCallback、def sele

    2024年02月07日
    浏览(29)
  • 【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?

    上一篇文章【CV大模型SAM(Segment-Anything)】真是太强大了,分割一切的SAM大模型使用方法:可通过不同的提示得到想要的分割目标中 详细介绍了大模型SAM(Segment-Anything)的不同使用方法 ,后面有很多小伙伴给我留言问我分割后的目标对象如何保存,这篇介绍一下分割后的ma

    2024年02月09日
    浏览(37)
  • Python截取图片区域并保存03

    Python + OpenCV图片基本操作02 目录 系列文章目录 前言 一、获取感兴趣图片坐标 二、剪切图片坐标区域并保存图片 总结 提供一张图片,如何截剪其中的某一部分的区域? 我的思路是分两步: 1. 找到要裁剪区域的坐标 2. 根据图片坐标进行剪切,并保存 1. cv2.COLOR_BGR2GRAY 将BG

    2024年02月08日
    浏览(68)
  • python提取pdf图片

    2024年02月13日
    浏览(34)
  • python提取图片文字

    STEP1:安装pillow ,pillow-pil ,pytesseract 安装完后,可以用 查看是否安装成功。若是列表中有,则安装成功。 STEP2:安装Tesseract  下载地址:Index of /tesseract 下载完成后双击.exe文件进行安装,语言包这个地方选一下(若是太慢,这个地方不选,后期再装语言包也可以),其他就

    2024年02月16日
    浏览(42)
  • Python 提取PDF文本和图片

    从PDF中提取内容能帮助我们获取文件中的信息,以便进行进一步的分析和处理。此外,在遇到类似项目时,提取出来的文本或图片也能再次利用。要在Python中通过代码 提取PDF文件中的文本和图片 ,可以使用 Spire.PDF for Python 这个第三方库。具体操作方法查阅下文。 Python 提取

    2024年02月08日
    浏览(34)
  • WireShark提取特定软件的网络包

            WireShark的下载安装以及简单的使用方法这里就不赘述,可以参考: 网络抓包分析工具Wireshark的下载、安装和使用_wireshark下载教程_初见未晚的博客-CSDN博客 https://blog.csdn.net/weixin_45054982/article/details/123257808?ops_request_misc=%257B%2522request%255Fid%2522%253A%252216875726381680022749

    2024年01月16日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包