2010-12-10 35 views
1

我正在使用TWAIN庫掃描灰度圖像。然後以編程方式調整掃描圖像中的每個像素以具有不同的白色和黑色端點。所以顏色值小於黑點的像素會被鉗位到黑點。顏色值大於白點的像素被鉗位到白點。而且,中間的所有像素都是外插的。用TWAIN掃描的圖像計算精度

我的問題是,我的計算質量下降了,因爲我正在做計算的掃描圖像僅爲每個顏色通道8位。

我要麼需要某種方式來獲取每個顏色通道比特數更高的圖像,要麼我需要告訴掃描儀爲我做這個計算。

我知道Epson控制面板允許您指定黑色和白色端點並執行此計算,而且看起來沒有準確性問題。所以我想知道它是否在爲Epson硬件做特定的事情。不幸的是我的軟件需要使用通用打印機。

有沒有人知道解決這個問題的方法?

+0

因爲這是一個C#的問題,代碼示例將有所幫助 – akonsu 2010-12-10 15:46:17

+0

你想要一個代碼示例?我的轉換代碼沒有任何問題,所以發佈這些代碼都無濟於事。我的問題是,掃描的圖像被限制爲每個通道8位。所以我需要一種替代方法。這可能是不可能的,但我認爲這是值得一個職位,看看我是否缺少任何東西。 – Dan 2010-12-10 16:07:18

+0

另外,我正在做的與Gimp,Photoshop或PSP在直方圖窗口中更改黑色/白色端點時所做的相同。它們也顯示了完全相同的不準確性 - 證明它不是我的錯誤代碼 - 它只是輸入紋理爲8bpp的事實。所以在愛普生控制面板中的等價物必須做一些不同的事情(例如,在將其保存到8bpp文件之前執行顏色轉換)。 – Dan 2010-12-10 16:13:00

回答

1

某些型號的TWAIN掃描儀 - 主要是平板電腦 - 可以提供比8位/通道更深的數據。

你的代碼需要傳輸機制(ICAP_XFERMECH)設置爲內存(TWSX_MEMORY),設置像素類型(ICAP_PIXELTYPE)到TWPT_GRAY,然後看看你是否可以設置ICAP_BITDEPTH到16

如果成功,你然後可以進行內存(AKA緩衝)圖像傳輸,並獲得16位/通道數據。我希望你會發現數據位於10-12個高位(即採樣範圍是0..65535),低位是噪聲。

由於本機圖像格式(DIB和PICT)不支持16位/通道數據,因此無法使用本機傳輸模式(TWSX_NATIVE)。您可以使用支持16位/通道數據的文件格式(如TIFF或JFIF)來使用文件傳輸模式:您只需對掃描儀進行試驗即可。

我剛剛在一張Epson Perfection V100照片上做了這件事,我確定其他Epson支持這個,也許是所有的Perfection系列。 請參閱:Twister Report archive

是的,之所以這個行之有效的8位掃描,當你在掃描儀的UI對比度調整爲掃描儀是通過調整在放大器的增益調節對比度 - 在如此工作模擬域。 (實際上,無限位/通道;-)

你可以利用這一電路:大多數平板車會讓你設置ICAP_SHADOW,ICAP_HIGHLIGHT和ICAP_CONTRAST - 具有如設置黑電平,白電和對比度在掃描儀相同的效果UI。然後你會調整模擬信號,你會得到密集的8位histograms

+0

感謝您的詳細發佈。我剛剛嘗試使用內存xfermech,但設置爲16位時,掃描儀失敗。這只是一個便宜的掃描儀。我已經發送了一個版本的軟件給客戶,供他們測試他們更高級的掃描儀。 – Dan 2011-05-30 11:44:45

+0

Re。 ICAP_SHADOW/HIGHLIGHT/CONTRAST - 我似乎還記得那時候看過那些東西,但是(我可能會錯誤地記住),它似乎並沒有推斷出沒有超出範圍的值。我會再看看這些,雖然我記得不正確,還有另一個原因,我沒有使用這些。 – Dan 2011-05-30 11:47:22