在pyinsan的设备选项中设置扫描坐标

2024-05-15 02:14:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Sane的命令行工具(scanimage)从扫描仪的透明单元扫描胶片。以下是我成功使用的命令:

scanimage --device-name pixma:04A9190D \
--source 'Transparency Unit' \
--resolution "4800" \
--format "tiff" \
--mode "color" \
-l "80.6" -x "56.2" -t "25.8" -y "219.2" \
> scan.tiff

我决定将此代码转移到Python代码中,使用pyinsane,以便与图像处理工作流进一步集成。这应该是Python代码中的以下内容:

^{pr2}$

但是我的第一次试验没有成功,因为我不知道如何设置扫描坐标pyinsane。如你所见,我找到了合适的选择,但我不知道他们在哪个单位。^默认情况下,{}采用毫米为单位的坐标,但是pyinsane只接受整数。我尝试过使用像素坐标,但没有用。我想知道坐标参数采用什么单位,以及我是否按正确的顺序使用它们。在


Tags: 工具代码命令行name命令device单位单元
2条回答

pyinsane的选项描述实际上是以毫米为单位:

Option: br-x
  Title: Bottom-right x
  Desc: Bottom-right x position of scan area.
  Type: <class 'pyinsane.rawapi.SaneValueType'> : Fixed (2)
  Unit: <class 'pyinsane.rawapi.SaneUnit'> : Mm (3)
  Size: 4
  Capabilities: <class 'pyinsane.rawapi.SaneCapabilities'> :[ Automatic, Soft_select, Soft_detect,]
  Constraint type: <class 'pyinsane.rawapi.SaneConstraintType'> : Range (1)
  Constraint: (0, 14160319, 0)
  Value: 20

但他们不是!我把br-x变量的最大范围除以扫描仪扫描区域的宽度,得到了65536(2^16)。将坐标设置为毫米值乘以65536就可以了。也许这些值定义了步进电机的步数?在

另外,当scanimage将-x-y开关解释为宽度和长度,-l和{}开关作为偏移量时,pyinsane采用右下角的x(br-x)、左上角的y(tl-y)等

精神错乱的人报告理智的报告。理智会报告司机的报告。根据我的经验,所有的驱动程序都不完全相同,这可能解释了这个奇怪的单元(换句话说,它可能是一个驱动程序的bug)。我以前从没真正担心过这个单位。当我有时间的时候,我会检查一下我的扫描仪。。在

无论如何,我不确定为什么它会说“mm”,因为根据我的经验,这里的单位实际上总是像素(同样,文档中说它可以是“mm”,所以我需要检查一下)。 如果你想扫描一个特定的尺寸,你应该看看分辨率(每英寸点数),然后计算出你期望的像素大小。在

相关问题 更多 >

    热门问题