double型の配列を画像として保存したい

画像処理を行っています。
2枚の画像から色差を計算し、出力されたdouble型の配列を画像として保存したいです。
今まではimwriteでpngとして保存していたので、勝手に0~255にスケーリングされてしまっていました。
tiffはdouble型のデータを保存できると知ったので、doubleの値をスケーリングせずそのままデータとして保存したいです。
そのような方法はありますでしょうか。教えていただけると幸いです。

 Accepted Answer

Shunichi Kusano
Shunichi Kusano on 9 Dec 2022

0 votes

double型での保存はimwriteではできないようです。
double型の保存として一番簡単なのは.mat形式で保存することだと思います。
save data.mat data % dataが色差のdouble型配列
最低限のデータ容量で保存したい場合はバイナリ形式で保存することになります。
この場合画像のサイズは何らか別の方法で保存しておくことになります。(普通はヘッダーファイルを別に作り、そこにサイズなどを記したテキストファイルを作ります。
fid = fopen('data.bin','wb');
fwrite(fid,data,'double');
flose(fid);
writematrix(size(data),'data_size.txt'); % データサイズだけテキストで保存。dataを読み出すときに使う。

3 Comments

baba baba
baba baba on 10 Dec 2022
ご返信ありがとうございます。
やはりdouble型の画像形式で保存するのは難しいのですね。
保存したデータをpythonで使用したいので、読み込みの簡単そうな.mat形式での保存を試してみます。
ありがとうございました。
baba baba
baba baba on 10 Dec 2022
すみません、どうやらwritematrixがライセンスが古いせいで使用できないのですが、ほかに方法はありますか?
Shunichi Kusano
Shunichi Kusano on 12 Dec 2022
writetableはいかがですか?
もしくはfprintfでもいいかと思います。

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2015a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!