python - 打印数据框中图像的文件名
问题描述
import cv2 as cv
import glob
import numpy as np
from skimage import io
import pandas as pd
from colormath.color_objects import sRGBColor, xyYColor, LabColor, XYZColor
from colormath.color_conversions import convert_color
import xlsxwriter
import os
path = "C:/Users/User/Desktop/Color/Fontane/36/*.jpg"
img_number = 1
for file in glob.glob(path):
print(file)
img = cv.imread(file)
scale_percent = 60
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
imgr = cv.resize(img, dim, interpolation=cv.INTER_AREA)
hsv = cv.cvtColor(imgr, cv.COLOR_BGR2HSV)
blur0 = cv.medianBlur(hsv, 11)
low_yellow = np.array([17, 25, 210])
high_yellow = np.array([30, 255, 255])
mask = cv.inRange(blur0, low_yellow, high_yellow)
res = cv.bitwise_and(imgr, imgr, mask=mask)
fname = os.path.splitext(os.path.basename(file))[0]
cv.imwrite(f'C:/Users/User/Desktop/Color/Fontane/36/SEG/{fname}.jpg',res)
path1 = "C:/Users/User/Desktop/Color/Fontane/36/SEG/*.jpg"
img_number = 1
result_df = pd.DataFrame()
for file in glob.glob(path1):
image = io.imread(file)
x = image[np.all(image != 0, axis=2)].mean(axis=0)
result_df = pd.concat((result_df, pd.DataFrame(x)), axis=1)
df_t = result_df.T
fname = os.path.splitext(os.path.basename(file))[0]
df_t['name'] = fname
df_t.columns = ['R', 'G', 'B', 'Filename']
df_t.loc['Mean'] = df_t.mean()
df_t = df_t.round(decimals=1)
writer = pd.ExcelWriter("C:/Users/User/Desktop/Color/Fontane/RGB/36.xlsx", engine='xlsxwriter')
df_t.to_excel(writer, sheet_name='RGB')
writer.save()
此代码为我提供了分割图像的平均 RGB 值。我将这些值写入 Excel 中的数据框中。由于我发现此数据框中的第一个值并不总是与我文件夹中的第一个图像匹配,因此我尝试在 excelsheet 中打印每个图像的文件名。. 我做了一些实验,但如您所见:打印的文件名在每个单元格中都是相同的。看起来它正在覆盖自己。
我不知道如何解决这个问题,有人有什么想法吗?
先感谢您
解决方案
推荐阅读
- java - Java中的数组左旋转
- sql - 使用 row_number() 的 SQL 查询未返回预期输出
- google-bigquery - 如何将日期时间字符串上传到“TIME”字段 bigquery
- typescript - 如何处理联合 DOM 事件类型?
- html - GitHub存储库首页上的PDF?
- nginx - 在不提供凭据的情况下允许来自 IP 的请求访问 Nginx 失败
- jmeter - JMeter 中的 SameSite cookie
- angular - 使用 angular 9 和 ngrx 进行表单数据编辑,引发错误
- flutter - 连续多个 WidgetSpan 不考虑方向性
- python - Django 只能通过命令行运行,但不能在 PyCharm 中运行