[問題] 一維陣列轉三維陣列 (影像檔)
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
推
09/25 22:35, , 1F
09/25 22:35, 1F
ummmm 以後有機會可以學一下opencv 不過現在對opencv是甚麼 也不太清楚@.@
→
09/25 22:39, , 2F
09/25 22:39, 2F
會matlab啦~ 想試試看用c++ 自己寫寫看~
推
09/25 22:47, , 3F
09/25 22:47, 3F
padding的話 已經處理過了~ 上面的code是簡化過的 用來示意
※ 編輯: MiguelC 來自: 140.113.69.230 (09/25 22:58)
→
09/26 16:22, , 4F
09/26 16:22, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):