gpt4 book ai didi

python - 如何使用 python 将像素映射到新图像中的值?

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:21 25 4
gpt4 key购买 nike

我正在尝试将图像映射到速度模型,其中颜色代表速度,因此我使用 OpenCV 读取图像,获取其尺寸,创建一定范围内的速度数组并尝试重新创建图像有了这些值,我在 matlab 中看到了一个非常相似的算法:

` vi=1000; vf=4200; M=imread('modelo_vr_2500x300.png');

Lx=size(M,1);
Ly=size(M,2);

N=M(1:Lx,1:Ly,1);

cor2=0:255;
vel2=cor2/256*(vf-vi)+vi;
V=zeros(size(N));
for i=1:length(cor2)
V=V+vel2(i)*(N==cor2(i));
end
imagesc(V)
colorbar`

所以我试着让它适应 Python,但它似乎不起作用,我得到的只是一个全黑的图像,但如果我打印 V,新图像,它有值,但它们非常高.我不知道我做错了什么,有人可以帮忙吗?

导入CV2 # 读取图像 img = cv2.imread("figures/teste03-06B.png", cv2.IMREAD_UNCHANGED) # 获取图像的尺寸 尺寸 = img.shape

# height = Ly, width = Lx, number of channels in image = Ch
Ly = img.shape[0]
Lx = img.shape[1]
Ch = img.shape[2]

N=img[0:Ly, 0:Lx, 0:Ch]

print('Image Dimension : ',dimensions)
print('Image Height : ',Ly)
print('Image Width : ',Lx)
print('Number of Channels : ',Ch)

cv2.imshow("Display window", img)
cv2.waitKey(0)
cv2.destroyWindow("Display window")

import numpy as np

vi=2000
vf=6000
color=np.array(range(256))

vel=((color/256)*(vf-vi))+vi

V = np.zeros_like(img)

for i in range(0,len(color)):
if N[i]==color[i]:
V=V+vel[i]
else:
V=V
print(V)

cv2.imshow("Display window", V)
cv2.waitKey(0)
cv2.destroyWindow("Display window")`

它没有给出任何错误消息,只是无法正常工作,我不知道为什么...

最佳答案

我想你正在寻找这个:

new_image = vel[img]

但您可能想先标准化 vel。一些变体:

vel = vel/max(vel) * 255
vel = vel.astype(dtype=np.uint8)

我认为这应该可行。

关于python - 如何使用 python 将像素映射到新图像中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56432084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com