【3.7.1.2】获取图片颜色的RGB
获取图片的RGB
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 读取图像
image_path = 'pic/test.png'
img = Image.open(image_path)
img = img.convert('RGB') # 确保图像是RGB模式
# 将图像数据转换为numpy数组
img_array = np.array(img)
# 将图像数据展平为二维数组
pixels = img_array.reshape(-1, 3)
# 使用KMeans提取主要颜色
n_colors = 5
kmeans = KMeans(n_clusters=n_colors, random_state=42)
kmeans.fit(pixels)
colors = kmeans.cluster_centers_
# 归一化颜色值
colors = colors / 255.0
print(colors)
# 可视化提取的颜色
plt.figure(figsize=(10, 6))
# 创建一个条形图展示每种颜色
for i, color in enumerate(colors):
plt.bar(i, 1, color=color, edgecolor='black')
plt.title('Extracted Colors from Image', fontsize=20)
plt.xticks(range(n_colors), [f'Color {i+1}' for i in range(n_colors)], rotation=45)
plt.yticks([])
plt.tight_layout()
plt.show()
替换RGB颜色
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
'Color': [(255, 0, 0), (0, 255, 0), (0, 0, 255)],
'Value': [10, 20, 30]
})
print("Original DataFrame:")
print(df)
# 要替换的RGB颜色值和目标位置
target_position = 1 # 替换第二行的RGB值
new_rgb_value = (128, 128, 128) # 新的RGB颜色值
# 替换指定位置的RGB颜色值
df.at[target_position, 'Color'] = new_rgb_value
print("\nDataFrame after replacing RGB value at position 1:")
print(df)
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn