看板 C_and_CPP 關於我們 聯絡資訊
小弟最近開始學C++,想要利用它來讀一些圖檔例如:raw,tif等圖檔 以前有學過用fortran來讀圖檔做一些影像處理的運算,不過最近在用 Dev-C++ 來讀圖檔時覺得怪怪的,好像只有讀到一部分的pixel值, 其他有一大部分都是O,以下是小弟寫的程式: #include<fstream> #include <iomanip> using namespace std; int main() { ifstream fin; const int row=480,col=640; int i,j,bw[row][col],k[255],sum=0; unsigned char gray[row][col] ; fin.open("img.raw"); ofstream fout("jar.txt"); ofstream wout("kar.txt"); for(i=0;i<row;i++) { for(j=0;j<col;j++) { fin>>gray[i][j]; bw[i][j]=gray[i][j]; fout<<" "<<bw[i][j]; k[bw[i][j]]=k[bw[i][j]]+1; } } for(i=0;i<255;i++) { sum += k[i]; wout<<" " << k[i]<<endl; } cout<<sum; fin.close(); fout.close(); wout.close(); system("pause"); return 0; } 不知道這樣寫有沒有問題,其他同學是用fortran來讀圖檔,我讀到的值 好像跟他們的不太一樣,不知道是那裡出了問題, 請版上的大大過目,這個問題一直困擾小弟很久了,希望版上的大大可以幫忙, 感激不盡~! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.132.97.26
MOONRAKER:>>是formatted input,讀取binary請用unformatted input 03/31 14:02
MOONRAKER:如ifstream.get() 03/31 14:04
dslin:感謝大大指教~!我試看看~! 03/31 19:19