while max_iters > 0:
max_iters -= 1
for i in range(0len(clusters)):
cluster = clusters[i
# cacluate distance for each pixels in 2xS rectangle
for x in range(max(cluster.center.x-S0) min(cluster.center.x+Sheight)):
for y in range(max(cluster.center.y-S0) min(cluster.center.y+Swidth)):
pi = Pixel(lab[x
[y
[0
lab[x
[y
[1
lab[x
[y
[2
x y)
dis = cluster.distance(pi S M)
if dis < d[x
[y
:
d[x
[y
= dis
l[x
[y
= i
# assign pixels to best cluster
for cluster in clusters:
cluster.cleanup_pixels()
for x in range(0height):
for y in range(0width):
i = l[x
[y
pi = Pixel(lab[x
[y
[0
lab[x
[y
[1
lab[x
[y
[2
x y)
clusters[i
.assign(pi)
# update clusters
epsilon_t = 0
for cluster in clusters:
epsilon_t += cluster.update()
espilon /= len(clusters)
print (\"iteration step done %s remains with epsilon %s\"%(max_iters epsilon_t))
draw(lab height width clusters l max_iters)
保存图片
requirementspillow
def draw(lab height width clusters l ix):
for x in range(0height):
for y in range(0width):
i = l[x
[y
lab[x
[y
= clusters[i
.lab()
for i in range(0 len(clusters)):
x y = clusters[i
.center.x clusters[i
.center.y
lab[x
[y
= 0
rgb = color.lab2rgb(lab)
io.imsave(\"img/%i.jpg\"%ix rgb)
skimage
numpy
matploblib
附录不同于常用的 RGB 色彩空间 , 采用 CIELAB(国际照明委员会)色彩空间表示 , LAB的特点在于比RGB更为平滑 , 对肉眼视觉的感官衡量更为贴近 。 弥补了 RGB 与 CMYK 两种彩色模式的不足 , 是Photoshop用来从一种色彩模式向另一种色彩模式转换时使用的一种内部色彩模式 。 LAB模式也是由三个通道组成 , 分别是l , a , b , 其中I代表亮度 , 数值范围为 [0 100
, a表示从绿色到红色的分量 , 数值范围为[-128 127
, b表示蓝色到黄色的分量 , 数值范围为 [-128 127
。
- AMD|AMD主板能用Intel显卡了!这一幕你肯定没见过
- 亚马逊|Soul App为用户撑起安全防护伞,守护年轻人的社交乐园
- Java|萤石视频开放平台深耕行业应用,加速千行百业数字化升级
- 任天堂|iQOO 9 Pro赛道版有多好看!编织纹理超有质感,全景舷窗好看实用
- 摩托罗拉|摩托罗拉 razr3消息,使用x轴马达和双扬声器
- 算法|机械师i9游戏本推荐,榨干win11, 使用win11看这篇就够了
- Java|java extends继承和override重写的用法
- 苹果|iOS 16第三个测试版推送:新增锁定模式 会禁用一大波功能
- 固态硬盘|俄罗斯PCIe 4.0 SSD硬盘用上自研芯片:最大16TB、速度1.5GB/s
- AMD|华擎发布Wi-Fi 6E网卡升级套件,适用于旗下新款AMD/英特尔主板