1
我想使用opencv cvSaveImage函數保存圖像。問題是我正在對圖像執行DCT,然後更改執行DCT之後獲得的係數,之後我正在執行逆DCT以恢復像素值。但是這次我得到了十進制的像素值(例如254.34576)。因此,當我使用cvSaveImage函數保存時,它會丟棄小數點後的所有值(例如,將254.34576保存爲254)並保存圖像。由於這個,我的結果受到影響。請幫助Opencv cvSaveImage
我想使用opencv cvSaveImage函數保存圖像。問題是我正在對圖像執行DCT,然後更改執行DCT之後獲得的係數,之後我正在執行逆DCT以恢復像素值。但是這次我得到了十進制的像素值(例如254.34576)。因此,當我使用cvSaveImage函數保存時,它會丟棄小數點後的所有值(例如,將254.34576保存爲254)並保存圖像。由於這個,我的結果受到影響。請幫助Opencv cvSaveImage
「cvSaveImage函數將圖像保存到指定的文件中,圖像格式根據文件擴展名進行選擇,請參見cvLoadImage,只有8位單通道或3通道(帶有'BGR'通道順序)圖像可以使用此功能保存,如果格式,深度或通道順序不同,請在保存前使用cvCvtScale和cvCvtColor進行轉換,或使用通用cvSave將圖像保存爲XML或YAML格式。
我建議調查cvSave函數。
然而,一個更簡單的方法是隻寫自己的保存/加載功能,這將是非常容易的:
f = fopen("image.dat","wb");
fprintf(f,"%d%d",width,height);
for (y=0 to height)
for (x=0 to width)
fprintf(f,"%f",pixelAt(x,y));
以及用於讀取相應的鏡像功能。
P.S.清晨,如果fprintf使用二進制文件,我不記得我的生活。但你明白了。你可以用fwrite()來代替。