Konwersja tablicy numpy zawierającej dane obrazu na CvMat
Mam obraz w tablicy numpy, który zapisuję używając savefig, a następnie używam funkcji opencv loadImage, aby załadować obraz do CvMat. Ale chcę usunąć ten zapis kroku obrazu.
Mój rozmiar obrazu Numpy wynosi 25x21, a jeśli używam funkcji fromArray, jak
im = cv.fromarray (asarray (img))
Dostaję CvMat o rozmiarze 25x21, który jest bardzo mały. Ale kiedy zapisuję obraz do formatu png i ładuję go z powrotem za pomocą LoadImage, otrzymuję pełnowymiarowy obraz o wielkości 429x509.
Czy ktoś może mi powiedzieć, jak mogę uzyskać ten pełnowymiarowy obraz z tablicy numpy do CvMat? Czy mogę przekonwertować obraz z tablicy numpy na format png w kodzie bez zapisywania go za pomocą savefig ()? Właśnie to robię teraz.
imgFigure = imshow(zeros((gridM,gridN)),cmap=cm.gray,vmin=VMIN,vmax=5,animated=True,interpolation='nearest',extent=[xmin,xmax,ymin,ymax])
imgFigure.set_data(reshape(img,(gridM,gridN)))
draw()
fileName = '1p_'
fileName += str(counter)
fileName += ".png"
savefig(fileName,bbox_inches='tight',pad_inches=0.01,facecolor='black')
Rozmiar img powyżej wynosi 525, a gridM i gridN to 25 i 21. Następnie ładuję ten obraz za pomocą:
img = cv.LoadImage(fileName, cv.CV_LOAD_IMAGE_GRAYSCALE)
Teraz rozmiar img to 429x509.