Python opencv计算批量图片的BGR各自的均值
#coding:utf-8 #第一种方式 很慢很慢 自己写的如何计算均值
'''
import cv2
import os
def access_pixels(frame):
print(frame.shape) #shape内包含三个元素:按顺序为高、宽、通道数
height = frame.shape[0]
weight = frame.shape[1]
channels = frame.shape[2]
value_b = 0
value_g = 0
value_r = 0
print("weight : %s, height : %s, channel : %s" %(weight, height, channels))
for row in range(height): #遍历高
for col in range(weight): #遍历宽
value_b = value_b + frame[row, col, 0]
value_g = value_g + frame[row, col, 1]
value_r = value_r + frame[row, col, 2]
singlePicValue_b = value_b / (height * weight)
singlePicValue_g = value_g / (height * weight)
singlePicValue_r = value_r / (height * weight)
return singlePicValue_b,singlePicValue_g,singlePicValue_r def computeMeanValue(path):
imgList1 = os.listdir(path)
mean_b = 0
mean_g = 0
mean_r = 0
for i in range(len(imgList1)):
srcframe = cv2.imread(os.path.join(path,imgList1[i]))
singlePicValue_b,singlePicValue_g,singlePicValue_r = access_pixels(srcframe)
mean_b = mean_b + singlePicValue_b
mean_g = mean_g + singlePicValue_g
mean_r = mean_r + singlePicValue_r
all_mean_b = mean_b / len(imgList1)
all_mean_g = mean_g / len(imgList1)
all_mean_r = mean_r / len(imgList1)
print (i)
return all_mean_b,all_mean_g,all_mean_r all_mean_b,all_mean_g,all_mean_r = computeMeanValue('./spinningData/src')
print (all_mean_b,all_mean_g,all_mean_r)
''' #第二种方式 借助numpy 很快 几秒
import os
import cv2
import numpy as np
path = './spinningData/src'
def compute(path):
file_names = os.listdir(path)
per_image_Rmean = []
per_image_Gmean = []
per_image_Bmean = []
for file_name in file_names:
img = cv2.imread(os.path.join(path, file_name), 1)
per_image_Bmean.append(np.mean(img[:,:,0]))
per_image_Gmean.append(np.mean(img[:,:,1]))
per_image_Rmean.append(np.mean(img[:,:,2]))
R_mean = np.mean(per_image_Rmean)
G_mean = np.mean(per_image_Gmean)
B_mean = np.mean(per_image_Bmean)
return R_mean, G_mean, B_mean if __name__ == '__main__':
R, G, B= compute(path)
print(R, G ,B)
Python opencv计算批量图片的BGR各自的均值的更多相关文章
- Python+Opencv实现把图片转为视频
1. 安装Opencv包 在Python命令行输入如下命令(如果你使用的Anaconda,直接进入Anaconda Prompt键入命令即可.如果你不知道Anaconda是什么,可以参考王树义老师的文 ...
- Python OpenCV ——Matplotlib显示图片
Color image loaded by OpenCV is in BGR mode.But Matplotlib displays in RGB mode.So color images will ...
- python opencv show图片,debug技巧
debug的时候可以直接把图片画出来debug. imshow函数就是python opencv的展示图片的函数,第一个是你要起的图片名,第二个是图片本身.waitKey函数是用来展示图片多久的,默认 ...
- RPi 2B python opencv camera demo example
/************************************************************************************** * RPi 2B pyt ...
- Python批量图片去水印,提高工作效率
平常工作中,有时为了采用网络的一些素材,但这些素材往往被打了水印,如果我们不懂PS就无法去掉水印,或者无法批量去掉水印.这些就很影响我们的工作效率. 今天我们就一起来,用Python + OpenC ...
- 【小工具系列】Python + OpenCV 图片序列转换成视频
图片序列转换成视频 最近一直在找一个工具,能够将一堆图片转化成视频.网上找了一些小软件,还有 win10 的照片自带的视频制作功能,都不是很满意. 又不想下载那些专业的视频剪辑软件大材小用. 然后找到 ...
- Python+OpenCV图像处理(二)——打印图片属性、设置图片存储路径、电脑摄像头的调取和显示
一. 打印图片属性.设置图片存储路径 代码如下: #打印图片的属性.保存图片位置 import cv2 as cv import numpy as np #numpy是一个开源的Python科学计算库 ...
- Python + opencv 实现图片文字的分割
实现步骤: 1.通过水平投影对图形进行水平分割,获取每一行的图像: 2.通过垂直投影对分割的每一行图像进行垂直分割,最终确定每一个字符的坐标位置,分割出每一个字符: 先简单介绍一下投影法:分别在水平和 ...
- Python批量图片识别并翻译——我用python给女朋友翻译化妆品标签
Python批量图片识别并翻译--我用python给女朋友翻译化妆品标签 最近小编遇到一个生存问题,女朋友让我给她翻译英文化妆品标签.美其名曰:"程序猿每天英语开发,英文一定很好吧,来帮我翻 ...
随机推荐
- Pyinstaller的安装及简单使用
(1)安装: 用传统的pip install pyinstaller出错,在https://pypi.org/project/PyInstaller/#files上下载PyInstaller-3.4. ...
- 修改ssh主机名
三台机器的配置相似,以zk1为例 1.修改hostname vi /etc/hostname zk1 2.修改hosts文件 vi /etc/hosts 10.45.48.233 zk1 10.45. ...
- Apache nifi 第二篇(小白初试) nifi数据对接流程初次尝试
一.准备工作 1.官网下载nifi 2.上传到linux随便哪里把,因为nifi是用java写的,所以首先要保证你的linux装了jdk 其次保证系统在装了zookeeper,因为nifi是一个分布 ...
- 学习spring第6天(aop获取目标方法参数)
关于<aop:around>中的方法,需要第一个参数为ProceedJoinPoint,在方法体中通过该参数调用proceed()才能使目标方法得到调用. 当一个切面中有多个<aop ...
- c++程序—输入
#include<iostream> using namespace std; #include<string> int main() { string str = " ...
- Windows系统自带选择文件的对话重写和居中处理
class CMyFileDialog: public CFileDialogImpl<CMyFileDialog> { public: CMyFileDialog(BOOL bOpenF ...
- SqlServer 集合运算符
1.集合运算符概述 (1)集合运算符运用与集合之间的运算. (2)多元集合: 指的是来自两个输入查询的集合,可能包含重复项 (3)T-SQL 支持三种集合运算符 union .intersect .e ...
- cf 760B.Frodo and pillows
二分,判断条件就是最小情况(设当前k位取x)比剩余值(m-x)要小.(貌似又做麻烦了2333) #include<bits/stdc++.h> #define LL long long # ...
- (7)opencv图片内部的基本处理
就是,给定我们一张图片,我们可以对图片的每一个像素的色彩进行处理 比如,我们的原图是这个样子 然后我首先将他变成灰度图(灰度图的行道是1,就是chanaual是1) 然后,我又将灰色图片的黑白进行颠倒 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习:数据类型
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...