1

我正在使用 TWAIN 库来扫描灰度图像。然后,我以编程方式调整扫描图像中的每个像素,使其具有不同的白色和黑色端点。因此,颜色值小于黑点的像素被钳制到黑点。并且颜色值大于白点的像素被钳制到白点。此外,外推介于两者之间的所有像素。

我的问题是我在计算中失去了质量,因为我正在计算的扫描图像每个颜色通道只有 8 位。

我要么需要某种方式来获取每个颜色通道具有更高位数的图像,要么我需要告诉扫描仪为我做这个计算。

我知道爱普生控制面板允许您指定黑白端点并进行此计算,看起来它没有准确性问题。所以我想知道它是否正在做一些特定于爱普生硬件的事情。不幸的是,我的软件需要使用通用打印机。

有谁知道解决这个问题的方法?

4

1 回答 1

1

某些型号的 TWAIN 扫描仪 - 主要是平板 - 可以提供比 8 位/通道更深的数据。

您的代码需要将传输机制(ICAP_XFERMECH)设置为内存(TWSX_MEMORY),将像素类型(ICAP_PIXELTYPE)设置为TWPT_GRAY,然后看看是否可以将ICAP_BITDEPTH设置为16。

如果成功,您可以进行内存(AKA 缓冲)图像传输,并获取 16 位/通道数据。我希望您会发现数据在 10-12 个高位(即样本范围为 0..65535)中,而低位是噪声。

您不能使用本机传输模式 (TWSX_NATIVE),因为本机图像格式(DIB 和 PICT)不支持 16 位/通道数据。您也许可以使用支持 16 位/通道数据的文件格式的文件传输模式,例如 TIFF 或 JFIF:您只需要对扫描仪进行试验。

我只是用我桌子上的一张 Epson Perfection V100 Photo 做到了这一点,我确信其他 Epsons 支持这一点,也许所有 Perfection 系列都支持。参见:Twister 报告存档

是的,当您在扫描仪的 UI 中进行对比度调整时,这适用于 8 位扫描的原因是扫描仪通过调整放大器中的增益来调整对比度 - 因此在模拟域中工作。(实际上,无限位/通道;-)

您可以利用该电路:大多数平板都允许您设置 ICAP_SHADOW、ICAP_HIGHLIGHT 和 ICAP_CONTRAST - 这与在扫描仪 UI 中设置黑电平、白电平和对比度具有相同的效果。然后您将调整模拟信号,您将获得密集的 8 位直方图

于 2011-05-28T00:14:29.037 回答