Я пытаюсь сопоставить изображение со скоростной моделью, где цвета представляют скорости, поэтому я читаю изображение с помощью OpenCV, измеряю его размеры, создаю массив скоростей в определенном диапазоне и пытаюсь воссоздать изображение с этими значениями я увидел алгоритм, очень похожий в matlab, который работает:
`vi = 1000;
= 4200 VF;
М = 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 ("figure / 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")`
Оно не выдает сообщение об ошибке, просто не работает должным образом, я понятия не имею, почему ...