Zaffy was right::
32 bit integer cannot be used in this case as the sizeof pixelpacket pointer to a red, blue or green pixel is 16 bit.
So, we need to use 16 bit unsigned integer from the stdint library
#include<stdint.h>
typedef uint16_t WORD;
Now in the structure rgbs we initialise WORD r,g,b instead.
The way to initialise Blob is : Blob blob(address of the pixel data, size of data) So, the code will be something like this:
Blob blob(&rgbt[0],(rgbt.size()*sizeof(rgbt[0]));
Image image;
image.size("100x100");
image.magick("RGB");
image.read(blob);