我正在使用TWAIN库来扫描灰度图像。然后,我以编程方式调整扫描图像中的每个像素,使其具有不同的白色和黑色端点。因此,颜色值小于黑点的像素被钳位到黑点。并且颜色值大于白点的像素被钳制到白点。此外,中间的所有像素都是外推的。
我的问题是我在计算中失去了质量,因为我正在进行计算的扫描图像每个颜色通道只有8位。
我要么需要一些方法来获取每个颜色通道的位数更多的图像,或者我需要告诉扫描仪为我做这个计算。
我知道Epson控制面板允许您指定黑白终点并进行此计算,看起来它没有准确性问题。所以我想知道它是否正在做一些特定于Epson硬件的东西。不幸的是,我的软件需要使用通用打印机。
有没有人知道解决这个问题的方法?
答案 0 :(得分: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:您只需要试用扫描仪。
我刚用桌面上的爱普生Perfection V100照片做了这个,我相信其他爱普生支持这个,也许是所有的Perfection系列。 请参阅:Twister Report archive
是的,当您在扫描仪的UI中进行对比度调整时,这种情况适用于8位扫描的原因是扫描仪通过调整放大器中的增益来调整对比度 - 因此在模拟域中工作。 (实际上,无限位/通道; - )
您可以利用该电路:大多数平板电脑都可以让您设置ICAP_SHADOW,ICAP_HIGHLIGHT和ICAP_CONTRAST - 这与在扫描仪用户界面中设置黑电平,白电平和对比度具有相同的效果。然后你要调整模拟信号,你会得到密集的8位histograms。