Вопрос по opencv, numpy – Преобразование массива с данными изображения в CvMat

1

У меня есть изображение в массиве NumPy, который я сохраняю, используя savefig, а затем использую функцию opencv loadImage, чтобы загрузить изображение в CvMat. Но я хочу удалить это сохранение шага изображения.

Мой размер изображения Numpy 25x21, и если я использую функцию fromArray, как

im = cv.fromarray (asarray (img))

Я получаю CvMat размером 25x21, который очень маленький. Но когда я сохраняю изображение в формате png и загружаю его обратно с помощью LoadImage, я получаю полноразмерное изображение размером 429x509.

Может кто-нибудь сказать мне, как я могу получить это полноразмерное изображение из массива NumPy в CvMat? Могу ли я преобразовать изображение из массива numpy в формат png в коде, не сохраняя его с помощью savefig ()? Это то, что я делаю прямо сейчас.

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')

Размер изображения выше 525, а gridM и gridN - 25 и 21. Затем я загружаю это изображение, используя:

img = cv.LoadImage(fileName, cv.CV_LOAD_IMAGE_GRAYSCALE)

Теперь размер img составляет 429x509.

@fraxel Я не смог правильно отформатировать код в комментарии, поэтому отредактировал вопрос и добавил туда свой код. shobhit
Добро пожаловать в SO :) Если мой ответ не помогает, пожалуйста, покажите свой код, определяющий, в чем проблема, ура. fraxel

Ваш Ответ

1   ответ
2

cv.fromarray() непосредственно на массиве без необходимости сохранять промежуточные данные:

import cv
import numpy as np
a = np.arange(0,255,0.0255).reshape(50,200)
b = cv.fromarray(a)
cv.SaveImage('saved.png', b)
print b
#Output:
<cvmat(type=42424006 64FC1 rows=50 cols=200 step=1600 )>

Числовой массив становится cvmat, а размер остается неизменным. Это сохраненное изображение:

enter image description here

Похожие вопросы