看板 C_and_CPP 關於我們 聯絡資訊
bmp檔案的影像陣列是 BGR BGR BGR .... 是用一維陣列存取的 我想把他給用成 像matlab讀圖一樣 image[x][y][z] 那樣簡單 像是 image[1][1][1] 就是第一個畫素的紅色值 但是我不想再讀檔的時候 用for迴圈 fstream I; char image[width][height][3]; for(int i=0; i<width, i++){ for(int j=0; j<height, j++){ I.read(image[i][j][2], 1); //讀B I.read(image[i][j][3], 1); //讀G I.read(image[i][j][1], 1); //讀R } } 我的想法是用 operator overloading 的概念 讀檔 就一樣讀成一整條 然後第一個值存到指標 p_image_array char* p_image_array=new char[width*height*3]; I.read(p_image_array, width*height*3); 然後要存取的時候 直接用 下面的概念 char oprator[][][] (int x, int y, int z) { return *(p_image_array + 3*x + y*width + z); } 但是當然的 overloading 不支援自創的 operator 所以我的想法不知道怎麼實現 請問各位大大 我的想法要怎麼做出來?? 感謝^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.69.230
johnlinvc:學opencv用at(int x,int y,intz)怎樣 09/25 22:35
ummmm 以後有機會可以學一下opencv 不過現在對opencv是甚麼 也不太清楚@.@
ericinttu:用matlab (爆) 09/25 22:39
會matlab啦~ 想試試看用c++ 自己寫寫看~
ericinttu:自己寫的話, 可能還要去處理一下padding的問題 (?) 09/25 22:47
padding的話 已經處理過了~ 上面的code是簡化過的 用來示意 ※ 編輯: MiguelC 來自: 140.113.69.230 (09/25 22:58)
Deltaguita:還是MATLAB比較好用 09/26 16:22