[問題] 影像處理,色彩空間轉換與修改像素

看板C_Sharp (C#)作者 (Lee)時間8年前 (2017/01/25 17:43), 8年前編輯推噓2(2023)
留言25則, 3人參與, 最新討論串1/1
1/27修改文章以利於閱讀、更新問題 新手發問 剛接觸C# & EMGUCV 影像處理 想試圖針對一些簡單影像操作 目的: 目前想針對輸入影像RGB 透過函式轉換成其他色彩空間 例如修改Lab的L通道 實作時遇到問題: 為了增加程式對圖片像素運作的速度 其中一中方式是將資料放進記憶體運算如網址: https://msdn.microsoft.com/zh-tw/library/5ey6h79d(v=vs.110).aspx 可使用此方式 透過上列網址的範例程式 把整張影像,轉成Bitmap 透過記憶體方式想修改色彩空間中的通道值,如下 rgbvalues[i] = 80; 事實上我並沒有修改範例程式 感覺是在範例程式某個環節 或 修改像素時哪裡出錯了 新手使用C#影像處理 不知道寫法是否與大多數人相同 還請各位先進幫忙解惑 --------問題更新------------ 無論使用GDI或EMGUCV時 將資料放進記憶體空間時 通常都是指定byte格式(好像是記憶體單位? 硬體不太精通,錯誤請糾正) 但若我使用的色彩空間是Lab這類 像素值可能大於255或是負號時 我該如何在記憶體空間運算我的像素 例:a的範圍介於-500~500 已經超過byte可以計算範圍 -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.132.44 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1485337420.A.EB6.html

01/25 17:44, , 1F
另外想請問,bitmap格式是預設RGB的PIXEL嗎? 小弟有點摸
01/25 17:44, 1F

01/25 17:44, , 2F
不著頭緒
01/25 17:44, 2F
※ 編輯: z115988 (110.30.80.88), 01/25/2017 17:47:09

01/27 00:45, , 3F
不是很懂你想問的問題....感覺你需要rgb to Lab 後 改
01/27 00:45, 3F

01/27 00:45, , 4F
變L值之後..再將新的Lab to rgb 在放回bitmap裡面!...
01/27 00:45, 4F

01/27 00:45, , 5F
改變L只是讓她變亮而已...
01/27 00:45, 5F

01/27 00:50, , 6F
Msdn寫的rgbvalue[]是一個一維矩陣..排列順序為BGR...範
01/27 00:50, 6F

01/27 00:50, , 7F
例是修改R值...你可能要先轉換成Lab..才能做後續的處理
01/27 00:50, 7F

01/27 01:20, , 8F
c大你好,您說的正確,藉由Lab修改亮度也是我的目的。冗
01/27 01:20, 8F

01/27 01:20, , 9F
長的描述是我擔心表達不正確。我處理時已將RGB轉成LAB丟
01/27 01:20, 9F

01/27 01:20, , 10F
進範例處理,而在Lab丟進記憶體修改時遇到問題:Lab
01/27 01:20, 10F

01/27 01:20, , 11F
值在rgbvalue[]中並不相同。其中我認為我在設定lockbit
01/27 01:20, 11F

01/27 01:20, , 12F
時,其中參數PixelFormat為Format24bppRgb是錯的,但我
01/27 01:20, 12F

01/27 01:20, , 13F
目前不知道要用甚麼格式去取代。我有在微軟論壇發一篇文
01/27 01:20, 13F

01/27 01:20, , 14F
章,或許從裡面您更能了解我的問題(內含我寫程式的流程)
01/27 01:20, 14F
※ 編輯: z115988 (59.102.132.44), 01/27/2017 01:33:29

01/27 01:35, , 15F
網址已經更新在內文,不好意思PTT不給我貼縮網址,連結
01/27 01:35, 15F

01/27 01:35, , 16F
時可能需要注意一下
01/27 01:35, 16F
※ 編輯: z115988 (59.102.132.44), 01/27/2017 01:38:28

01/27 01:55, , 17F
為什麼你不重頭到尾使用EmguCV,而要途中改回GDI的Bitmap?
01/27 01:55, 17F

01/27 02:03, , 18F
直接修改 red_lab_img2 的L通道不是很簡單嗎?
01/27 02:03, 18F

01/27 02:17, , 19F
而且為什麼你的TDepth要用Single...?
01/27 02:17, 19F

01/27 03:07, , 20F
L大您好,目前在練習C#與EMGUCV,程式技巧略絀還請見諒,
01/27 03:07, 20F

01/27 03:07, , 21F
TDepth是下午在思考bug時測試,未注意到修改。想請問一下
01/27 03:07, 21F

01/27 03:07, , 22F
,您指出原來Emgucv有直接修改顏色通道函式,可否指點一
01/27 03:07, 22F

01/27 03:07, , 23F
下函式名稱?(註:當初想使用此方式是因為未來可能對影片作
01/27 03:07, 23F

01/27 03:07, , 24F
處理,得知使用內存處理影像似乎速度比較快(?))
01/27 03:07, 24F

01/27 10:07, , 25F
MIplImage
01/27 10:07, 25F
感謝您,讓我測試看看 ※ 編輯: z115988 (59.102.132.44), 01/27/2017 22:59:19
文章代碼(AID): #1OY7DCws (C_Sharp)
文章代碼(AID): #1OY7DCws (C_Sharp)