Re: [問題] OpenCV怎麼讓raw檔轉bmp檔?
如果你說的raw是指CFA的Bayer pattern直存的檔案,
希望找demosaic的工具的話
C語言openCV用cvCvtColor,搭配code = CV_BayerBG2BGR等等
C++的話是cv::cvtColor,code差不多
你上網找reference和sample code就可以了
需要特別注意的是你要知道原本的raw是幾bit、解析度、還有bayer pattern是哪一種
這些opencv的文件上都有寫
你如果轉出來顏色看來很怪,那大概就是用錯了bayer pattern
另一個值得一提的地方是,
opencv的預設channel是BGR而不是RGB
如果你的目的是要存檔/顯示的話,目標格式建議用BGR
當然如果你要個別channel做操作的話就自己分清楚誰是誰就好了...
實務上,bayer pattern種類的選擇和輸出格式的選擇有可能導致負負得正的結果
也就是說你bayer選錯但輸出也選錯,最後顯示出來卻剛好是對的
以考慮code的reuse來說,最好檢驗一下都改對,
變數的命名也改對
(例如明明是BGR的IPL圖就不要把它命名為IplImage *im_rgb
還有YCrCb的圖不要順手就命名為im_yuv,其實他是yvu )
不然後來要再看的時候這種錯可能會是debug的盲點
※ 引述《renmax (鍛翼)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Dev-C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: OpenCV
: 問題(Question):
: // 已經會實作bmp檔轉其他圖檔的code
: 我讀raw檔的方式是用 fopen(filename, "rb")
: 雖然可以成功讀檔,但針對OpenCV而言
: 要怎麼讓raw檔轉成bmp檔呢?
: 餵入的資料(Input):
: test.raw // 彩色
: 預期的正確結果(Expected Output):
: test1.bmp // 灰階
: test2.bmp // 彩色
: 錯誤結果(Wrong Output):
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: 補充說明(Supplement):
: 以拜讀過yester大的相關文章,不過沒找到raw檔怎轉其他圖檔的文章
: 請各位前輩不吝指教,麻煩各位前輩了
: 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.173.120
推
01/22 10:40, , 1F
01/22 10:40, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):