看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《heymei0421 (heymei)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : 無 : 問題(Question): : 學長給我一個yuv檔案的圖檔 要我先做分割 在做transform 在做量化 在做反量化 : 反transform ...etc 看看失真前後圖片的差異。 : 我卡在分割卡很久 目前我將yuv所有的像素讀出來並以char的大小存在一維陣列 : 而學長指定分割的圖示規格是8*8 ,而原始圖像的寬長是352,288,分割完成後 : 應該有寬44長36個小方塊,每個小方塊裡面有64個pixel。 : 問題就是我想了老半天 都不知道怎麼把一堆類型相同的資料弄成一個資料來代表 : 我想過用結構,但失敗= = 我想過用一個多個不同的陣列分別代表原始陣列的部分 : 資料,但是我也不知道多個不同陣列 該怎麼產生~"~ : 請大神提示>"< : 推 shiengchyi:在表示數字上面 用unsigned char 以binary方式讀進來 08/03 16:27 : → shiengchyi:尤其是影像檔案 多半是unsigned int 08/03 16:27 其實你可以完全不要考慮陣列,純粹使用pointer去處理, 一開始定義好每一行的pixel數量,假定讀入的陣列叫做arrImg; 那麼取得第三列第二行的pixel value p unsigned char *tmpBuf; tmpBuf = (unsigned char*)malloc(pixelSize); memcpy(tmpBuf, (arrImg + ((3-1)*imgWidth + (2-1))*pixelSize), pixelSize); p = (unsigned int)tmpBuf; 至於如何取出8*8 block,那就是迴圈的藝術了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.71.22