Python颜色光谱单色效果图

参考资料:
1、知乎《# 色彩空间中的 HSL、**HSV**、**HSB** 有什么区别?
》
 https://www.zhihu.com/question/22077462/answer/342570140
2、童晶《Python趣味创意编程》第103、纯净天空的博客https://vimsky.com/examples/usage/python-pil-image-new-method.html

一、HSV(HSB)颜色模型

  HSV,又称HSB颜色模型。
HSV(HSB)颜色模型

  • H是hue的首字母,表示色调,取值范围0到360,刻画不同的色彩,比如红色为0,绿色为120,蓝色为240;
  • S是saturation的首字母,表示饱和度,取值范围0到100,表示混合了白色的比例,值越高颜色越鲜艳;
  • B是brightness的首字母,表示亮度,取值范围0到100,等于0为黑色,100最明亮。

二、颜色光谱单色效果图

# -*- coding: utf-8 -*-
 
from PIL import Image, ImageColor, ImageDraw, ImageFont

# 生成字符串"hsv(30,100%,100%)":
def colorstr(i0):
    color1="hsv("+str(i0)+",100%,100%)"
    return color1.format("+{color1}+",color1)

# 创建一个白色画布 
# RGB mode and size 600x600 ,设定HSv对应分量的取值

width = 600
height = 600

image = Image.new('RGB', (600, 600), (255,255,255))
d = ImageDraw.Draw(image)

# 光谱上的各种单色效果
step=10 #每次增加10度
for i in range(0,360,step):      
    c=ImageColor.getrgb(colorstr(i))
    d.pieslice([100,150,width-100,height-50],i,i+step,c,c,1)

# 生成四种绘制元素
cClouds=ImageColor.getrgb("hsv(330,25%,100%)")
cSky=ImageColor.getrgb("hsv(220,50%,50%)")
cFurther=ImageColor.getrgb("hsv(230,25%,90%)")
cCloser=ImageColor.getrgb("hsv(270,70%,10%)")
                          
d.pieslice([50,50,100,100],0,360,cClouds,cClouds,1)                          
d.pieslice([200,50,250,100],0,360,cSky,cSky,1)                          
d.pieslice([350,50,400,100],0,360,cFurther,cFurther,1)                          
d.pieslice([500,50,550,100],0,360,cCloser,cCloser,1)                          

# get a font
fnt = ImageFont.truetype("simhei.ttf", 20)
# get a drawing context
d.text((65, 20), "云", font=fnt, fill=cClouds)
d.text((205, 20), "天空", font=fnt, fill=cSky)
d.text((355, 20), "远山", font=fnt, fill=cFurther)
d.text((505, 20), "近山", font=fnt, fill=cCloser)
d.text((210, 570), "颜色光谱单色效果图", font=fnt, fill=cCloser)

image.save('color.jpg', 'jpeg')
image.show()

三、运行结果

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
光谱像分类是指利用高光谱遥感数据进行地物分类的过程。Python提供了多种方法和工具来进行高光谱像分类。 一种常用的方法是使用机器学习算法,例如支持向量机(SVM)、随机森林(Random Forest)和卷积神经网络(Convolutional Neural Network,CNN)等。这些算法可以通过训练样本来学习地物的特征,并将其应用于整个像进行分类。 另一种方法是使用专业软件,例如ENVI等。ENVI提供了丰富的高光谱像分类工具和算法,可以进行预处理、特征提取和分类等操作。 以下是一个使用Python进行高光谱像分类的示例: ```python # 导入所需的库 import numpy as np from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载高光谱数据 data = np.load('hyperspectral_data.npy') labels = np.load('hyperspectral_labels.npy') # 将数据划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=0) # 创建支持向量机分类器 clf = SVC() # 训练分类器 clf.fit(X_train, y_train) # 在测试集上进行预测 y_pred = clf.predict(X_test) # 计算分类准确率 accuracy = accuracy_score(y_test, y_pred) print("分类准确率:", accuracy) ``` 这个示例中,我们首先导入所需的库,然后加载高光谱数据和标签。接下来,我们将数据划分为训练集和测试集,并创建一个支持向量机分类器。然后,我们使用训练集对分类器进行训练,并在测试集上进行预测。最后,我们计算分类准确率并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值