def
mkDir
(
path
)
:
isExists
=
os
.
path
.
exists
(
path
)
if
not isExists
:
# 判断如果文件不存在
,
则创建
os
.
makedirs
(
path
)
def
light_count_RGB
(
frames_all_dir
)
:
frames_all_10
=
os
.
listdir
(
frames_all_dir
)
for
frame in
tqdm
(
frames_all_10
)
:
print
(
frames_all_dir
.
split
(
'/'
)
[
-
3
]
+
'/'
+
frame
)
frame_dir
=
os
.
path
.
join
(
frames_all_dir
,
frame
)
img
=
cv2
.
imread
(
frame_dir
)
b
=
img
[
:
,
:
,
0
]
g
=
img
[
:
,
:
,
1
]
r
=
img
[
:
,
:
,
2
]
light_img
=
0.299
*
r
+
0.587
*
g
+
0.114
*
b
x
,
y
=
light_img
.
shape
light_heat_map
=
np
.
zeros
(
(
x
,
y
)
)
light_heat_map
=
(
light_heat_map
+
light_img
)
/
2
light_mean
=
np
.
mean
(
light_img
)
result
=
round
(
light_mean
,
2
)
#保留小数点前两位
RGB_path
=
'/home/xl/workstation/Datasets/Real_Dataset/RGB_Real/'
mkDir
(
RGB_path
)
# portion = os.path.splitext(frame)
# embed()
#
if
portion[1] == '.jpg':
# f2 = portion[0]
# embed()
cls_pic
=
os
.
path
.
join
(
RGB_path
,
str
(
result
)
+
frame
)
# cls_pic = os.path.join(cls_path+pid, img_name)
shutil
.
copy
(
frame_dir
,
cls_pic
)
if
__name__
==
'__main__'
:
root
=
'/home/xl/workstation/Datasets/Real_Dataset'
# root = '/home/xl/workstation/Datasets/Market1501_test'
files
=
os
.
listdir
(
root
)
# train_dir = os.path.join(root, 'Heatmap_market1501')
train_dir
=
os
.
path
.
join
(
root
,
'All'
)
mkDir
(
train_dir
)
light_count_RGB
(
train_dir
)
关键代码:
img = cv2.imread(frame_dir)
b = img[:, :, 0]
g = img[:, :, 1]
r = img[:, :, 2]
light_img = 0.299 * r + 0.587 * g + 0.114 * b
light_mean = np.mean(light_img)
将RGB信息存在图片的名字中比较直观,也可以存在excel表中或者列表中
对于我这种没有专业美工人员支持的开发者来说,从网上寻找参考图是必须的,这样往往就会遇到一个问题:这个图片各个部分的颜色代码是多少?这里介绍一些我得经验供大家参考。
就比如csnd的图片,我想知道这几个英文字母的颜色代码是多少,那么我们把这个图片复制或者剪切一部分到我们的剪切板中。
1、win10以上的桌面系统任务栏都有这个搜索的按钮,点开它,搜索"画图"(它是我们电脑自带的绘图软件)
2、进入绘图软件
3、此时将我们的图片复制进去
4、点击绘图软件上的颜色选取器按钮,然后点击你想要获取
要求存在一个文件夹内有若干张图像,需要计算每张图片的RGB均值,并计算全部图像的RGB均值。代码# -*- coding: utf-8 -*-"""Created on Thu Nov 1 10:43:29 2018@author: Administrator"""import osimport cv2import numpy as nppath = 'C:/Users/Administrator...
#coding:utf-8#第一种方式 很慢很慢 自己写的如何计算均值'''import cv2import osdef access_pixels(frame):print(frame.shape) #shape内包含三个元素:按顺序为高、宽、通道数height = frame.shape[0]weight = frame.shape[1]channels = frame.shape[2]va...
Python-opencv学习第十三课:图像像素值统计
文章目录Python-opencv学习第十三课:图像像素值统计一、学习部分二、代码部分1.引入库2.读入原始图片并定义图像像素函数,计算均值与方差3.完整代码三、运行结果总结
一、学习部分
记录笔者学习Python-opencv第十三课:图像像素值统计,代码资料来源于网络贾老师视频。
二、代码部分
1.引入库
代码如下:
import cv2 as cv
import numpy as np
2.读入原始图片并定义图像像素函数,计算均值与方差
获取图片均值和方差的方法
在域自适应变化中,或者在处理数据集的时候,经常需要对于图像 或者数据集 的均值和方差进行分析
通过分析均值、方差,可以比较高效地获得数据分布情况 特别是大数据集
因此,在这里记录并且介绍一下图片均值、方差的获取方法,通过一些简单的实验来说明算法和结果。
1、基本背景
1) 图片的均值、方差
一张三通道RGB图片可以表示为 RC*H*W 的一个空间,其中:
C 表示通道 ;H 表示图片的长度 ;W 表示图片的宽度
可以用一个大小为 I = [C, H, W] 的矩阵来表示这张图片
coco数据集的均值和方差(三分量顺序是RGB)
mean = [0.471, 0.448, 0.408]
std = [0.234, 0.239, 0.242]
imagenet数据集的均值和方差(三分量顺序是RGB)
mean = [0.485, 0.456, 0.406]
std = [0.229, 0.224, 0.225]
https://blog.csdn.net/dcrmg/article/details/102467434