Hi everyone,
I would like to convert from a numpy array (an image that I read using opencv) to fastai’s Image class.
I have gotten this to work by storing the image in a file, and then reading it with open_image.
I am doing this because I want to use fastai to obtain prediction on the classes that patches from an image mosaic that I am manipulating with opencv belong to.
The (very ugly) code, looks like this
cv2.imwrite("./tempImage.jpg",newPatch)
img=open_image("./tempImage.jpg")
pred_class,pred_idx,outputs =learner.predict(img)
By reading the documentation I seem to understand that I should be able to create an Image object by calling the creator of the image class with something that is a torch tensor. Am I right in this?
I reach something like
img=Image(torch.from_numpy(newPatch))
Which, to be frank, also looks a bit over the top, and also does not work as I get
RuntimeError: grid_sampler(): expected input and grid to have same dtype, but input has unsigned char and grid has float
I suppose I am missing some data conversion but I cannot figure it out at this moment.
Does anyone know a better way to do this?