"I tried below code but it seems the binary file is not good". How do you define "good"?
Following code shows the image is saved and loaded properly.
img = imread('pears.png');
fid = fopen('test.bin', 'w+');
fwrite(fid, img, 'uint8');
fclose(fid);
fid = fopen('test.bin', 'r');
img_loaded = uint8(fread(fid, inf, 'uint8'));
fclose(fid);
img_loaded = reshape(img_loaded, size(img));
imshow(img_loaded);