2011-04-13 62 views
1

使用移動設備,我會在黑色表面上拍攝平面光線對象的圖片。 (例如從報紙上剪下一張優惠券)。C中的圖像修改(裁剪和去偏移)#

然後圖像通過亮度/對比度濾鏡運行。如果太暗,則關鍵部件被忽略。如果太亮,優惠券上的文字將丟失。

此圖像然後轉換成雙色調圖像。任何50%或更多黑暗的像素都會轉換爲黑色,其他所有像素都是白色的。 (完成)

我留下了一個扭曲的雙色調圖像(想象一個黑色背景的大矩形內的白色梯形)。

我需要弄清楚如何裁剪圖像 - 當它在黑色背景上比在白色背景上更容易。然後,我必須去掉傾斜的圖像,使其呈矩形而不是梯形,同時嘗試保留方面。

最終的結果應該是一個很好的裁剪,黑白,可讀的優惠券圖像。

+0

這篇文章可能會幫助你開始。它包含一個調整csharp中圖像大小的方法,而不會影響寬高比。 http://stackoverflow.com/questions/4681084/expand-canvas-transparent-background-in-bitmapimage-in-a-wpf-app – mrtsherman 2011-04-13 21:36:02

+1

歪斜很可能是以前的步驟中的一個錯誤,以獲得雙色調圖像。當有人忘記考慮位圖掃描線中的填充時傾向於發生傾斜。 – 2011-04-13 21:54:01

+0

傾斜(在這種情況下)發生在用戶拍攝不直接在紙張上方的圖片時。 – Josh 2011-04-14 13:16:48

回答

1

要裁剪圖像,可以使用LockBits方法並掃描所有像素以分別查找包含頂部,左側,右側和底部內容的第一個像素。如何使用LockBits在此處描述得很好:http://www.bobpowell.net/lockingbits.htm

假設您的圖像沒有旋轉,並且傾斜來自相機與拍攝優惠券的桌子保持一定角度,您現在應該有一個傾斜的圖像的優惠券,完全符合裁剪位圖的界限。你也應該知道梯形的四個角落。

「Undistorting」圖像並不像您想象的那麼容易。然而,好人已經解決了這個問題,你可以將他們的代碼移植到自己的應用中。這裏是我以前在類似情況下,前一段時間去探索這個問題的鏈接:

http://ryoushin.com/cmerighi/en-us/61,2007-10-29/Image_Distortion_Enhancements.aspx

我也有地方存放,如果你不能讓你查找任何意義一些代碼。