C_and_CPP 板


LINE

開發平台(Platform): (Ex: Win10, Linux, ...) Win7 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VS2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenCV 問題(Question): 從png檔讀到的pixel無法和原始的影像矩陣完全相同 餵入的資料(Input): png圖檔 預期的正確結果(Expected Output): 原始影像(.raw file) 程式碼(Code): http://ideone.com/PLOrLa https://drive.google.com/drive/folders/0B99YOOHxEH3wMHdnRDZyYkxlZlk?usp=sharing google雲端,裡面有我要處理的png檔和原始影像矩陣的raw file rawfile 大小為2624*1960 16unsighed bit 補充說明(Supplement): 各位版上的大大好: 小魯我最近在研究怎麼把png檔裡的每個像素讀取出來 然後再把像素的值存回RAW檔案 我的對PNG的格式的理解是:非破壞性的壓縮 因此png上的像素值便是原始的像素值 可以透過讀取png影像的每一個pixel,去完整還原原始的raw file DK66.png =>這是我餵入程式圖檔 source_image_array.raw =>這是在拍下png檔時的原始影像資料 66DK.raw =>透過程式產生的影像資料 我的預想是source_image_array.raw要和66DK.raw完全吻合 但是我去觀看source[]矩陣內的資料,卻和source_image_arrat.raw的資料不吻合 以前五個pixel點為例 source_image_array前五點為:016F、0176、016D、016A、0165 但是我透過openCV的cvGet1D抓到的值卻是0131、0134、0136、012A、012E 是因為png工作中的filtering和壓縮後,每一點的像素已經和原始資料不同了嗎? source_image_array.raw這裡面的值是用人工產生的 然後我把source_image_array.raw放進別人寫好的函式轉成PNG檔 我的目的是要將PNG檔還原回我當初製造的source_image_array.raw 用OpenCV中的cvGet1D把PNG檔的所有pixel值紀錄下來 是否可以還原成當初的像素矩陣呢? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.176.70
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1488701223.A.D32.html ※ 編輯: k82817 (223.137.176.70), 03/05/2017 16:11:15
1F:噓 Ommm5566: 作業自己做 03/05 16:09
※ 編輯: k82817 (223.137.176.70), 03/05/2017 16:12:40
2F:→ k82817: 已經讀取到png的像素值,也寫入進了66DK.raw當中 03/05 16:16
3F:→ k82817: 如果打開66DK.raw看起來和原始的png檔是一樣的 03/05 16:16
4F:→ k82817: 想知道為什麼影像看起來正常,但是像素卻不一樣了? 03/05 16:17
5F:推 Bencrie: 我先猜你 raw 的 y 軸上下顛倒 03/05 16:42
6F:→ k82817: B大 你是指程式產生的DK66.raw嗎? 03/05 17:11
7F:→ k82817: 可是我是透過cvGet1D去抓PNG檔第一點的值,應該不會有上下 03/05 17:12
8F:→ k82817: 影像下方有一個小白點,raw檔看起來正常的 03/05 17:16
9F:→ k82817: 應該沒有上下顛倒的問題 03/05 17:16
10F:推 Bencrie: 或者 pixel format 不一樣?RGB BGR ARGB BGRA 03/05 18:04
11F:→ k82817: 影像為RGB 03/05 19:06
12F:→ k82817: source_image_array.raw 這個檔案並沒有格式的問題 03/05 19:07
13F:→ k82817: 在存這個檔案的時候,是將原始矩陣的值直接寫進去 03/05 19:09
14F:→ k82817: 檔案的前兩個位原組,就是影像的第一個Pixel值 03/05 19:11
15F:推 Bencrie: 你的 raw 跟我想像中的 raw 好像不一樣 XD 03/05 19:11
16F:→ k82817: 對,我的RAW檔並不是PS在使用的那種 03/05 19:21
17F:→ k82817: 他只是單純紀錄每一點的pixel值 03/05 19:22
※ 編輯: k82817 (223.137.176.70), 03/05/2017 19:43:20
18F:推 Bencrie: 我用 GIMP 開,那兩個 raw 影像不一樣啊 03/05 19:25
19F:→ Bencrie: 原始那張比較暗,值比較小 03/05 19:26
20F:推 Bencrie: 你如果怕 OpenCV 幫你做多餘的事情就自己用 libpng 解 03/05 19:30
21F:→ k82817: B大 你可以告訴你用GIMP打開原始影像時 03/05 19:47
22F:→ k82817: 前五個像素值是多少嗎? 03/05 19:48
※ 編輯: k82817 (223.137.176.70), 03/05/2017 19:48:59
23F:→ k82817: 我在想存成PNG檔時,像素的值是不是就已經跑掉 03/05 19:57
24F:→ k82817: 因為PNG檔的前五個像素就已經和source_image_array不同了 03/05 19:58
25F:推 FallwinDs: OpenCV 預設值應該是BGR 03/06 14:29
26F:推 Zero0910: cvLoadImage第二個參數應該要下CV_LOAD_IMAGE_ANYDEPTH 03/06 15:27
27F:→ Zero0910: 不然OpenCV會把讀進來的影像轉成8bits 03/06 15:27
28F:→ k82817: zero大 你是說要這要下嗎? 03/06 15:35
29F:→ k82817: cvLoadImage( filename,CV_LOAD_IMAGE_ANYDEPTH );?? 03/06 15:36
30F:→ k82817: 因為我去查百度,-1是讀取預設通道 0是轉成灰階 03/06 15:37
31F:→ k82817: 1是讀取成彩色圖 03/06 15:38
32F:→ k82817: fall大 所以我去讀取s.Val[0],因為這張png檔並沒做rgb處理 03/06 15:47
33F:→ k82817: 去讀取s.Val[1]和s.Val[2]都是0 03/06 15:47
34F:→ k82817: 我想問題應該是出在source image array.raw轉成png的過程 03/06 15:51
35F:→ k82817: 因為png的pixel已經和source image array.raw完全不相同了 03/06 15:53
36F:→ k82817: ,可是那是別人的dll檔,無從研究 03/06 15:53
37F:推 Zero0910: 我手上的文件是寫/* 8 bit, color or gray - deprecated 03/06 15:54
38F:推 Zero0910: ↑參數下-1的話 03/06 16:01
39F:→ Zero0910: 我用cvLoadImage( filename,CV_LOAD_IMAGE_ANYDEPTH ); 03/06 16:02
40F:→ Zero0910: 前幾個pixel是 0x1013 0x4013 0x6013 0xA012 跟你的raw 03/06 16:07
41F:→ Zero0910: 也不太像就是.. 03/06 16:07
42F:推 Bencrie: 他的 png 是 16bits grayscale 03/06 17:37
43F:→ grayStone: 去看官方文件不要看百度 03/06 19:29
44F:推 TeaEEE: 有color profile嗎? 03/07 13:34
45F:→ k82817: tea大 是說raw的color profile? 03/08 00:25







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP