欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

matlab0-255的颜色映射到0-1,python中的matlab颜色映射

发布时间:2025/4/5 python 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matlab0-255的颜色映射到0-1,python中的matlab颜色映射 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我想(?)您需要的是一个Colour Mapping函数,如:def create_colourmap(colour, grey):

c_map = numpy.zeros((256,4), dtype=numpy.float64)

for i in range(colour.shape[0]):

for j in range(colour.shape[1]):

tone = grey[i,j]

c_map[tone,3] +=1

count = c_map[tone, 3]

c_map[tone,:3] = (c_map[tone,:3] * (count-1) + colour[i,j])/count

return c_map.astype(numpy.uint8)[:,:3]

这将为每个灰度值(或色调)提供一个颜色值。在

您的“位反转”过程可以通过另一个函数简化:

^{pr2}$

把你的函数放在一起就是加密:def encrypt(infile, outfile):

with Image.open(infile, 'r') as colour_img:

colour_arr = numpy.array(colour_img)

grey_img = colour_img.convert('L')

grey_arr = numpy.array(grey_img)

c_map = create_colourmap(colour_arr, grey_arr)

with Image.fromarray(c_map) as cmap_img:

cmap_img.save(outfile[:-4]+'_cmap.bmp')

grey_arr = reverse_bits(grey_arr)

with Image.fromarray(grey_arr) as c:

c.save(outfile)

print("Encryption DONE")

你的解密功能:def decrypt(infile, outfile):

with Image.open(infile, 'r') as x:

y = numpy.array(x)

y = reverse_bits(y)

colour_arr = numpy.zeros((y.shape[0], y.shape[1], 3), dtype=numpy.uint8)

with Image.open(infile[:-4]+'_cmap.bmp') as cmap_img:

cmap = numpy.array(cmap_img)

for i in range(256):

colour_arr[y==i] = cmap[i]

with Image.fromarray(colour_arr) as c:

c.save(outfile)

print("Decryption DONE")

您会注意到颜色映射不会完全恢复图像的颜色,但会给图像一些色调。我不知道你的作业是关于什么的,但是你可以把彩色地图和加密图像一起发送,或者给他们另一张颜色相似的图片。在

我希望这对你有帮助,但是你需要了解它是如何工作的,并在必要的地方发表评论来解释到底发生了什么。在

祝你好运!在

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的matlab0-255的颜色映射到0-1,python中的matlab颜色映射的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。