问题标签 [pyinsane]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
611 浏览

python - Pyinsane 示例因“没有名为 src.abstract 的模块”而失败

我正在使用pyinsane模块,运行后sudo pip install pyinsane,我相信 pyinsane 已启动并运行。在使用以下命令测试此示例后:

我懂了:

代码:

(有更多代码要遵循,但没有必要重现该问题。我正在寻找的只是摆脱这个错误。)

0 投票
1 回答
644 浏览

python - python pyinsane脚本失败

我需要一些关于 python 脚本的帮助。该脚本是 Python Pyinsane 模块的示例脚本。(Pyinsane https://github.com/jflesch/pyinsane)我想编写自己的扫描仪脚本,但要做到这一点,我应该了解示例代码或输出错误。

示例脚本。

现在输出:

请任何人都可以解释示例代码或帮助我解决输出错误吗?

非常感谢

月桂酸

0 投票
2 回答
476 浏览

python - 在 pyinsane 上的设备选项中设置扫描坐标

我使用 Sane 的命令行实用程序 ( scanimage) 来从我的扫描仪的透明单元扫描胶片。这是我一直在成功使用的命令:

我决定将其移至 Python 代码,pyinsane以便与我的图像处理工作流程进一步集成。这应该在 Python 代码中给出以下内容:

但是我的第一次尝试没有成功,因为我不知道如何设置扫描坐标pyinsane。如您所见,我找到了合适的选项,但我不知道它们的单位是什么。scanimage默认情况下,坐标以毫米为单位,但pyinsane只接受整数。我尝试使用像素坐标无济于事。我想知道坐标参数采用什么单位,以及我是否以正确的顺序使用它们。

0 投票
1 回答
329 浏览

python - 带有 pyinsane 的 16 位彩色图像

pyinsane 的扫描会话默认返回 8 位 PIL 图像列表。这是真的,即使在 16 位模式下完成了扫描(例如使用透明单元)。有没有办法从 pyinsane 中获取 16 位图像(我想 PIL 不支持)或原始原始数据?

这是我目前正在使用的示例代码,并获取了 8 位颜色深度的图像:

0 投票
1 回答
2513 浏览

python - 致命错误 C1083:无法打开包含文件:'atlbase.h' Pyinsane 包

因此,从这里下载 pyinsane 2.0.2 包并进入命令窗口后,我运行了setup.py build命令。但是每次我运行它时,都会出现致命的错误 C1083:

我知道这个问题以前以非常相似的方式被问过很多次,但没有一个是关于 pyinsane 包或 atlbase.h 文件的,我正在处理。如果我只是没有找到正确的问题,一个指向它的链接将不胜感激。

是的,我已经尝试过使用#include <atlbase>但它给了我同样的错误。我在带有 MC VS 2017 的 Windows 8.1 上使用 python 3.6.3。

0 投票
0 回答
2749 浏览

python - 使用python关闭Windows中的特定USB端口


这是我的第一篇文章,我已经看到越具体越好,所以我会尽量做到超级清楚,并提前感谢!

我想要什么:
我需要同时从 2 个或更多扫描仪扫描图像,这些扫描仪来自相同的品牌和型号,在这种情况下是Epson Perfection V600,我需要不同的时间间隔在一个过程中至少 40 次捕获20小时。


决定使用 Windows 的方法,我已经有一个 Python 程序,它只用一个扫描仪或两个来自不同型号的扫描仪就可以完成我想要的工作。但这是你们进来的地方:

问题
Windows 总是使用相同的扫描仪打印,因为它们来自相同的品牌和型号,所以它总是使用相同的扫描仪,而且我不能使用两种不同的扫描仪,因为这会导致图像无法比较。然而,当我使用两个不同的扫描仪时,我没有这样的问题。我需要找到一种方法来使用每台扫描仪进行打印。我想买一个 USB 集线器并用 python 控制它,但显然在 windows 中实现了libsub,我将无法控制它。因此,我目前正在寻找一种禁用特定 USB 端口的方法,以便程序仅识别一个设备,对其进行扫描,禁用该设备,重新启用另一个设备,等等。


我可以访问的内容:

  • 现在我在 Conda 环境中的 python 3.5 版本中使用 Windows 10、64 位、python 内核 3,conda 版本(4.5.11)。
  • Ubuntu 16.04,64 位,pyinsane 工作,在 conda 内的 python 3.5 环境中(手头没有 conda 版本)。
  • 台爱普生完美V600。
  • 两个Canon Lide200,只能在windows 下工作,因为驱动程序在Ubuntu 中不可用。

我也尝试过的

  • 使用 Ubuntu
    我认为这是一个好主意,但是Epson 驱动程序网页无法连接到包含其余 Epson 文件的存储库,让我只能下载部分文件,我已经尝试联系 Docky 存储库的所有者,但他没有联系我。
    错误:

W:存储库“ http://ppa.launchpad.net/docky-core/ppa/ubuntu Xenial Release”没有发布文件。
N:来自此类存储库的数据无法进行身份验证,因此使用起来存在潜在危险。
N:有关存储库创建和用户配置的详细信息,请参见 apt-secure(8) 手册页。
E: 无法获取http://ppa.launchpad.net/docky-core/ppa/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
E: 一些索引文件下载失败。它们已被忽略,或者使用旧的。

  • 当我手动尝试进入站点的存储库时,我发现所有指向 XENIAL 驱动程序的链接都已关闭,实际上整个 Xenial 文件夹都丢失了。

  • 然后还认为忽略此消息是个好主意,但我需要Epwoka 驱动程序才能在 Ubuntu 中运行 Epson 扫描仪,这本身就是一个完整的问题。除此之外,不知道 Epson Perfection V600 是否可以由 PyInsane 库控制,因为它被标记为未经测试。

使用视窗

  • 我想购买一个 USB 集线器并按此线程所示进行控制,但显然在 Windows 中是不可能的。

  • 我已经安装了 libsub、usb.util、libusb1、USB(用于核心功能)和 usb1,但我不知道(我认为不可能)用它们禁用和重新启用特定的 USB 端口。

  • 无法禁用驱动程序,因为这意味着所有 USB都将关闭以与扫描仪连接。

  • 设备管理器没有帮助,因为无法分辨哪个设备是哪个。

  • 无法更改扫描仪的名称(是的,打印机可以有特定的名称),但扫描仪不能。

  • 不能再买一台扫描仪,我被爱普生困住了。


我的扫描代码

我在每个扫描仪内放了一张便签,一个带有“a”,另一个带有“b”,它始终使用我首先插入的扫描仪进行扫描

这是我想做的(并且手动进行) : **这就是我想要做的**.



这是我在 python 中尝试时得到的:

这就是我得到的

任何解决方案都会帮助我,发挥创造力!我正在考虑使用 .bat 文件来禁用特定端口并使用 Python 调用它。但我找不到制作它的方法。请记住,手动操作不是一种选择,因为需要 20 到 40 小时的连续图像采集。
谢谢!

~迭戈

0 投票
1 回答
394 浏览

python-3.6 - pyinsane 2 中的图像扫描给出了 StopIteration 错误

我在 Python - Django 中使用 Pyinsane 2 通过网络 HP 打印机扫描图像。它可以正确检测设备。但是在给出 scan_session = device.scan(multiple=False) 时,它给出了 StopIteration 错误。

def scan_process(request): print('Scannned'); pyinsane2.init() try: devices = pyinsane2.get_devices() assert (len(devices) > 0) device = devices[0] print("我将使用以下扫描仪:%s" % (str(device )))

def scan_process(request): print('Scannned'); pyinsane2.init() try: devices = pyinsane2.get_devices() assert (len(devices) > 0) device = devices[0] print("我将使用以下扫描仪:%s" % (str(device )))

0 投票
1 回答
56 浏览

python-3.x - Python libinsane到可执行文件(制作exe后将dll文件保存在哪里)

我关注了这个链接libinsane 的官方 git repo,并在 MSYS2 环境中设置了 libinsane。我什至可以使用此文件夹中的 scan.py 文件进行扫描。我几乎使用了 scan.py 在我的应用程序中所做的事情。你们能建议我如何俱乐部我的项目。如果很难做到如何制作scan.py的exe并将其用作可以从我的应用程序调用的独立应用程序,它会将jpg文件保存在我的应用程序可以从中获取它的文件夹中的某个位置?

谢谢

0 投票
2 回答
93 浏览

scanning - 以最大分辨率扫描小区域(高达 6400dpi)

问题陈述:我想以最大扫描仪分辨率(在 Epson V850 上为 6400 dpi)扫描图像。这部分可以通过软件中的 Epson 扫描仪“专业模式”实现,前提是扫描区域限制为 21000 x 30000 像素。

我可以接受这个限制,我可以简单地扫描整个区域的小方块(以最大分辨率),然后将它们“缝合”在一起。

我想自动化这个,所以我尝试使用 pyinsane / SANE。

问题是:我可以设置的最大分辨率是1200,您可以从 pyinsane 报告的属性中看到

  • dps_optical_xres= 6400 ([])
  • dps_optical_yres= 6400 ([])
  • 分辨率=300 ([50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575, 600 , 625, 650, 675, 700, 725, 750, 775, 800, 825, 850, 875, 900, 925, 950, 975, 1000, 1025, 1050, 1075, 1100, 1125, 1100, 1175, 1 )
  • xres=300 ([50, 1200, 1])
  • yres=300 ([50, 1200, 1])
  • 光学 xres=6400 ([])
  • 光学yres = 6400([])

所以问题是:如何覆盖此设置,以便能够以6400dpi扫描小区域?

同样,使用 EPSON Scan 软件,我可以以 6400dpi 扫描,前提是扫描区域很小。

我知道由于内存原因存在限制,但我无法调整扫描区域和分辨率感觉不对,就像爱普生软件允许的那样。

使用 Epson 软件的问题是 A) 我无法自动化该过程,并且 B) 我无法从左上角到右下角坐标选择任意扫描区域。

我很惊讶如何还没有明确的答案。让我们尝试一劳永逸,为子孙后代!