《怎样在Linux下设置和使用扫描仪》由会员分享,可在线阅读,更多相关《怎样在Linux下设置和使用扫描仪(6页典藏版)》请在人人文库网上搜索。
1、怎样在Linux下设置和使用扫描仪使用扫描仪假如想象一个典型的办公计算机,用户会想到运行特定程序(例如字处理程序和电子表格)的系统。桌面办公系统的原型具有有一台显示器、一个按键、一个键盘作为人机插口,但是联接复印机作为输出。在这个老套的桌面办公系统里缺乏一个组件:扫描仪。不是每台计算机都具有或是需要扫描仪,对于好多程序来说,扫描仪都是可有可无的。通过使用扫描仪,用户可以将复印的相片转换文件,因而使用图处理形处理程序对其进行编辑,也可以将文档转换为文字处理文件。用户什至可以借助扫描仪(在复印机和调制混频器的协助下)将计算机弄成一台打印机和传真机。在Linux下
2、扫描仪须要两种主要的支持类型:对底层插口的支持,例如SCSI或USB以及对特定扫描仪机型的支持。Linux的主要扫描仪程序包ScannerAccessNowEasy(SANE,它包含好多扫描仪的驱动程式。用语可以把SANE当作单独的程序进行配置和使用,也可以在其他软件中调用它。用户什至可以配置SANE来实现通过网路进行操作,因而让多台计算机共享一台扫描仪虚拟主机 linux,如同共享复印机一样。查找扫描仪支持好多主流Linux里都包含SANE假如用户想得到最新的版本,可以查看SANE的Web主页:http://。这个站点还包含相应扫描仪的信息。所有的
3、支持被分为stable(稳定的:经过测试而且工作正常)、beta(beta测试版:工作情况相当不错)、alpha(alpha测试版:非常新的支持,可能包含重大错误)、untested未测试的:理论上是可行的,但没有经过测试)和unsuppoted(不支持的:不能正常工作)。有些设备可能不被某个驱动程序支持,但可以使用其他驱动程序。假如征官方SANE站点不能找到须要的扫描仪驱动程序,您可以在Web上进行搜索,这样可能会发觉没有被被搜集到SANE主程序包里的试验驱动程序。假如用户的扫描仪是USB摸式的,还呵以查看http:/www.li。这个
4、站点包含了关于USB开发的信息,还具有指向新驱动程序的链接。好多新的和试验性的驱动程序并不是很稳定,它们可能还须要用户重新编译SANE的源代码。假如找不到驱动程序,您最好淘汰先有的扫描仪而且购兴一个新的。配置扫描仪软件从根本上讲SANE是一个应用程序插口(API),它提供了一组类库,其他程序可以调用那些类库来使用任何扫描仪。SANEfc要由三个部份组成:实现API的库(也就是“中间件”或“后端程序的前端”)访问扫描仪的驱动程序(也就是“后端程序”)调用SANEAPI的程序(也就是“前端程序”)不同的后端程序可能是差异很大的。举例来说,文本模式的后端程序才能在命令行下
5、进行扫描,而基于X窗口的后端程序提供GUI预览扫描和其它常见扫描特点。配置SANE的工作主要是为扫描仪设置正确的前端程序,这是通过编辑两个文件来完成的:/etc/sane.d/dll.conf这个文件包含了SANE前端程序的列表,SANE在被调用时可能搜索这个列表。前端程序一般是以扫描仪制造商来命名的,有时会附加机型数字,例如mustek或umaxl220220u。文件中以井号“#”开始的行是注释,在执行程序时它们会被忽视。特定扫描仪的配置文件不仅dll.conf文件之外,/etc/sane.d目录里还包含特定扫描仪的配置文件。那些文件是按照前端程序进行命名的,后缀是.co
6、nf,例如mustek.conf或umax12201220u在大多数情况下用户不须要调整那些文件,但是有时用户可以调整那些设置来提升扫描仪的性能。大多数都包含描述参数的说明,根据说明更改一些参数可以改变扫描仪的性能。说明:所有主流Linux将SANEE置储存在/etc/sane.d,但是假如用户在没有改变默认设置的情况下重新编译SANE的源代码,这种文件将会被保存在/usr/local/etc/sane.d用户可以通过输人两个命令来查看可用的扫描仪。第一个命令是sane-find-scanner,这个命令在本地扫描仪插口搜索本地扫描仪,其结果可能是一个或多个输出行,指明了扫描
7、仪所在的设备文件名,例如/dev/usb/scannerO(设备文件之间的符号化链接或重复的设备文件有时会让扫描仪出现两次)。假如sane-find-scanner没有发觉肯定存在的扫描仪,请确定它是否联接到了计算机而且打开它,同时还要复查是否加载了合适的驱动程序。USB扫描仪须要scanner驱动程序,SCSI扫描仪须要SCSI主适配器的驱动程序和SCSI类(sg)驱动程序,串口扫描仪须要Linux串口支持(parpor,在IA-32系统上还须要parport_pc)。sane-find-scanner程序不能测量网路扫描仪(关于这个问题请参见前面的小节“网络扫
8、描”)。当确定了扫描仪硬件可以访问过后,用户可以查看SANE是否正确地辨识了扫描仪机型,因此可以输入scanimage-L命令。这个命令调用scanimage后端程序,这个程序一般是用于扫描图象的,但是在使用了-L参数后,这个程序只是辨识可用的扫描仪。倘若一切工作正常,用户会见到如下信息:deviceumaxl22Ou:/dev/usb/scannerOisaUMAXAstra122OUflatbedscanner大多数提供SANB配置的Linux在默认情况下关掉了大多数或全部扫描仪。假如scanimage-L命令没有得到希望的结果,用户可以查看/
9、etc/sane.d/dll.conf,但是删掉相应前端程序行后面的注释标记。假如须要添加很新的后缀程序,用户应当按照它提供的指令进行操作。RedHat在这方面是与众不同的,它为好多描仪提供未被注释的配置,因而在安装以后不须要更改就可以正常工作。但是这种设置会稍为减少扫描仪测量的速率。用户还须要注意另一个配置细节:设备文件权限。设备文件(例如/dev/usb/scannerO,这是前一个反例里scanimage-L返回的结果)对于所有使用扫描仪的用户必须都是可读可写的。好多Linux在默认情况下将这种设置为全局可读可写的,但用户还是应当查看它的设置是否正
10、确。假如文件权限没有设置全局可读可写,用户可以使用chmod来改变权限。假如这个文件属于具有可读可写权限的特殊的扫描仪组,这么就可以将须要使用扫描仪的用户添加到这个组。实现基本扫描在scanimage-L命令才能发觉扫描仪过后,用户就可以真正使用扫描仪了。因为SANE从技术上讲是个API而不是个程序,用户使用SANE的形式取决于访问SANE的程序。在使用这种程序时须要注意的一个细节是扫描仪的“设备名称”,尽管设备文件包含设备标示符,但“设备名称”不仅仅是设备文件(在/dev目录树里)。设备名称是由前端程序名、一个逗号和设备文件名组成的。举例来说,这个名称可能是muste
11、k:/dev/sg2或umaxl22Ou:/dev/usb/scannerO。这是由scanimage-L返回的名称。面介绍一些常见的基本扫描仪程序包:scanimage这个程序是SANE的文本模式后端程序,它还能处理很多选项(详尽内容请查看它的指南页),并且只须要输入scanimage-ddevicescanfile.pnm命令就可以执行基本的扫描操作,其中device是设备名称,例如mustek:/dev/sg2。输出文件是PortableAnymap(PNM)格式,用户可以使用--formatformat选项更改输出文件格式。其实这个
12、程序是一个后端程序,但它一般包含在SANE前面程序包里。xscanimage这个程序是SANE勺基本GUI后端程序,它的功能与scanimage类似,但它使用GUI控件来访问大多数选项。它一般是SANE后端程序包的组成部份(sane或sanefontends)。Xsane这个程序并不是SANE主程序包的组成部份,但却是紧密相关的。它是基于X窗口的后端程序,具有更多的特点。它的站点是http:/。大多数Linux提供了名为xsane的程序包。Kooka这是使用KDesktopEnvironment(KDE)的后端程序。Kooka提供图像管理的功
13、能和库文件,可以为其他KDE应用程序提供Kooka类型的扫描。详尽内容请查看http://apps/kooka/。还有其他一些基于SANE勺特殊扫描程序,例如xcam用SANE乍为与单反的插口)和scanadf(支持通过手动文档进纸器进行的扫描)。在下边的“网络扫描”小节里会介绍一种不常见的SANE应用。我们将XSane作为使用SANE勺范例。使用XSane扫描档的步骤如下所示:1.输入xsane来加载这个程序。它可能会寻问用户使用哪一个扫描仪,虽然只有一个描仪时也可能是这样,由于程序可能使用多余的设备文件来测量扫描仪。在这种情况下,用户选择那个扫描仪都
14、是一一样的。XSane具有多个窗口,如图3.4所示。从左下角开始根据顺秒针方向依次是选项窗口、主把控制窗口、颜色柱状图窗口和预览窗口。从主控制窗口里的View菜单里,用户可以打开或关掉这种窗口,以及其他默认时没确显示的窗口。2.XSane在默认情况下启动为Viewer(查看器)模式,这意味着当用户开始扫描时,程序会打开另一个窗口来显示扫瞄的情况,之后用户可以在查看器里操纵和保存扫描的图象。在主控制窗口上方的SaneMode(XSane模式)选项型可以选择其他模式。在这个范例里须要选择Save(保存)。,这个选项让用户才能将扫描结果保存到一个文件。主控制窗口
15、会进行扩充,因而显示出输入文件名和文件类型的数组。3.假如默认的out.pnm不是须要的文件名,用户可以在文件名子段里输入更好的名称,或是单击窗口里像软驱一样图标因而在文件选择对话框里选择一个文件名。4.在主控制窗口里的帧率选择钮里选择扫描码率(图3.4中的设置为150)。有些扫描仪使用滑块设置扫描帧率。5.假如文档是灰度级的,例如黑白相片,用户可以在选项窗口里单击GrayscaleScan(灰度扫描)框。有些扫描仪还提供额外的位深度或腰线选项。6.将须要扫描的文档放置到扫描仪的平板上。7.在预览窗口里单击Acquireview(获取预览)按键,
16、这时扫描仪应当开始进行操作,以低码率进行扫描,但是在预览窗口里显示结果。8.假如用户不想扫描整页内容,可以在预览窗口里用键盘选择须要的区域,如同在其他图象程序中所做的操作一样。9.单击主控制窗口里的Scan(扫描)按键。XSane应当开始扫描文档,但是将扫描结果保存到用户在第3个步骤指定的文件。10.假如须要扫描更多的文档,用户只须要重复第3到第9个步骤。否则可以选择File?Quit来退出这个程序。在XSane里用户可以设置一些额外的属性。举例来说,用户可以使用XSaneMode选项选择扫描结果的发送目的地(使用Copy项产生翻印结果、使用Fax选项传真文档
17、、使用E-mail选项把文档用电子电邮发送出去)用户还可以使用主控制窗口里的滑块调整色温、对比和伽玛值。有些选项只适用于特定的扫描仪,因而用户听到的选项可能与图3.4不同。说明:在使用个别扫描仪时,当用户退出SANE后端程序时SANE会关掉扫描仪的灯。好多SANE后端程序也提供了手工关掉扫描仪灯的方法,例如图3.4中选项窗口里的LampOff按键。有些扫描仪只有在关掉扫描仪时才套会开灯。将扫描仪集成到其他软件因为SANE是个APIlinux 使用网络打印机,因而在理论上所有程序都可以调用SANE来实现扫描。其实对于个别程序来说实现这些疗效比其他程序更有意义。这些编程工作包括调用SANE
18、让用户访问SANE选项,这意味着提供扫描仪访问的程序一般使用另一个程序包提供的插口工具集。举例来说,GNUImageManipulatioProgram(GIMP)使用XSane插口,Kooka提供的工具可以作为基于KDE勺程序与扫描仪插口。非扫描仪程序的扫描工作细节是不同的。在GIMP里,用户从File?Acquire菜单里选择扫描仪选项(具有多台扫描仪时会有多个选项),其结果一般如图3.4所示XSane窗口,似是主控制窗口里没有XSaneMode选项。以这些方式扫描的结果直接步入GIMP窗口,用户就可以像处理其他图象一样对其进行操作了(在往前的另一篇文章里,我
19、将会详尽地介绍GIMP)。图象转化为文本:OCR扫描仪从本质上讲是个图形设备,它的输出是位图图形数据流,就能很便捷地在X窗口里显示查看linux是什么系统,也才能保存到图形文件。但是有时侯我们扫描一个文档的目的是将其转化为文本,因而使用文字处理程序编辑它、将数据加载到电子表格或是以非图形形式进行处理。为了实现这个目的,就形成了“光学字符辨识(OCR)”程序。这种程序以图形文件作为输入,生成输入文件所包含字符的文本文件。基本上来说,OCR程序“取”输入文件的字符。但是这对于计算机程序来说是相当复杂的,这种软件必须克服好多障碍,其中包括输入文件上的白色和黑斑、不同字体的体的字符在外形和规格
20、上的变化、字符中夹夹的非文本信息(例如内嵌的图象)。因而OCR软件总是有一定缺陷的,但它的性能还是相争当的,值得一用。一般情况下,用户可以扫瞄文档,之后与原始文档进行对比,进行适当的更改。下边介绍一些主要的LinuxOCR软件包:Clara这个程宇来自于http:/,它倾向于完成大规模的OCR项目,例如将彩印的书籍转化为数字格式。这个程序包含基于X窗口的GUI,但它没有与扫描仪的直接插口。因而用户必须首先将文档扫描为文件,之后使用Clara处理那些文件。GOC这个程序来自于http:/,它是在命令行运行的OCR?序,因而它可以被其也程序
21、调用,例如XSane或Kooka,因而让其它程序具有OCR功能。OCRShop还是Linux下的商业OCR软件包,它比开放源码的Clara或GOC更加成熟,并且价钱不菲,入门级软件包的价钱大概是1500日元。OCRShop不使用SANE乍为前端程序,因而在订购这个软件之前要确保它支持用户使用的扫描仪。详尽信息可以查看http:/。作为一个OCF的范例,我们使用来自XSane的GOCR操作步骤如下:1按照须要安装GOC软件包。2加载XSane将XSaneMode设置为Viewer。用户将把图形扫描到查看器里,之后让查看器运行GOCR3将XSane设置为获取灰度或腰线图象。4
22、单击预览窗口里的AcquirePreview按键来获取预览图像。5在预览窗口里选中要扫描的文档部份。6将扫描帧率设置在150dpi到300dpi之间,这样会得到最佳的OCRS果。7.单击Scan按键来扫描文档。XSane会打开一个窗口来显示描的文档,这个窗口可能是很大的。8在扫描得到的文档窗口里选择File?OCR-SaveasText,程序会显示一个文件选择对话框,用户可以输入适当的文件名。9.在文件选择对话框里输入文件名而且单击OK按键。XSane不会有任何标记来表示GOC正在运行,但它的确在运行。几秒钟以后,用户指定的文件才会创建完毕,其中包含着对应于扫描文
23、档的文本。GOCF的输出结果不一定总是满足用户要求的。在编撰文章时,GOC的版本是0.37,也就是说它是一个很早的版本。随着版本的提升,它的精确度也应当相应提高,因而假如OCR对于用户来说是非常重要,就应当常查看GOC的站点。用户可以通过调整各类扫描参数来提升GOCR勺精确度,例如调整帧率、对比和色温。网路扫描SANEt设计时就考虑到了灵活性,非常是由单独的前端程序、SANB库和后端程序构成SANE的方式,让我们可以便捷地用特殊方式将组件联接在一起。像scanimage这些文本模式下的扫描程序就是这些疗效的一个挺好的反例。另一个更生动的反例是SANB1过网路处理扫描的能
24、力。举例来说,假如用户须要配置一组计算机,例如学院计算机中心的公共工作站,或是同一间办公室里两个职员使用的两台计算机;并且只有一台扫描仪,并且卧室的大小致使家中所有人都还能实际使用这台扫描仪。借助SANE用户可以将扫描仪联接到一台计算机上,而且让家中所有计算机都可以使用扫描仪,如同扫描仪直接联接到每台计算机上一样。警告:网路扫描须要在联接扫描仪的算机上运行服务程序,这些操作会引入一定的危险,因而用户在施行网路扫描配置时应当多加留神。用户应当使用防火墙、TCPWrappers或xinetd全选项来限制对扫描仪服务器的访问。构建网路扫描须要在每台计算机上进行不同的配置。最复
25、杂的配置工作在于服务器端直接联接扫描仪的计算机。这个系统必须运行SANE服务程序,它就是一个“中间件”,它坐落控制扫描仪的前端程序与顾客计算机上的后端程序之间。这个SANEK务程序被称为saned,大多数Linux将其保存在/usr/sbin。用户应当将它配置为从超级服务程序(例如inetd或xinetd)上运行。具体步骤如下:1配置扫描仪,使它还能在服务器上正常工作,具体方式参见后面的“配置扫描仪软件”小节。2.检测是否安装了saned。它一般是sane或sane-backends软件包的一部份。假如它还没有被安装,用户就要找到而且安装适当的软件包。3.按照须要在
26、/etc/services下添加SANE端口的条目。有些Linux具有这个条目,而有些没有。如果这个条目不存。就添加如下内容:sane6556/tcp#SANEnetworkscanneraccess4.为saned创建一个超级服务程序配置。A.Debian、Slackware和SuSE都默认使用inetd。/etc/inetd.conf中用于saned的设置如下所示,但用户应当使用自己系统上的用户名和组。sanestreamtcpnowaitsaned.saned/usr/sbin/sanedsanedB.Mandrake和RedHat都使
27、用xinetd作为超级服务程宇。对于这种Linux,用户应当创建一个包含如下内容的/etc/xinetd.d/saned文件:servicesanedisable=nosocket_type=streamprotocol=tcpwait=nouser=sanedgroup=sanedserver=/usr/sbin/saned5.向超级服务程序传递SIGHUP言号。输入psax|grepinetd令来查找进程ID(PID)号码,之后输入kill-SIGHUPpid命令,其中pid是上面找出的PID号码。6.确保加载saned时超级服务程序所使用的
28、用户或组存在,而且还能访问扫描仪文件。这个用户最好不具有计算机上的其他权限,但是根本就不能登入。7.在/etc/sane.d/saned.conf文件里添加才能访问扫描仪的主机名称,每台主机抢占文件的一行。这个文件是saned使用的主要访问控制技巧。现今saned服务程序应当才能对扫描恳求形成响应了,而且我们须要告诉顾客端怎样访问这个服务程序。因此,用户须要执行如下配置过程:1.在顾客端下的/etc/sane.d/dll.conf文件中添加net选项,这个选项告诉顾客端上的SANEI搜索网路扫描仪。2.编辑顾客端上的/etc/sane.d/net.conf文件,添加
29、SANE服务程序的主机名称。现今顾客端可以访问扫描仪了。sane-find-scanner程序不能工作,但scanimage-L才能发觉网路扫描仪:$scanimage-Ldevicenet::umaxl220220u:/dev/usb/scanner0isaUMAXAstra1220Ufflatbedscanner我们注意到扫描仪的设备名称降低了两个元素:标示符以关键字net开始,在关键字以后是服务程序所在的主机名。用户可以将完整的扫描仪设备名称传递给须要使用扫描仪的后端程序,也可以借助象XSane这类程序的手动检查机能。
30、提示:用户可以从非Linux操作系统上访问基于SANE服务的网路扫描仪。在http:/frontends.html上用户可以找到用于各类操作系统的SANE后端程序的链接。非常值得注意的是用于Windows的后端程序,它们就能用于好多Windows的扫描程序。小结外围设备通过各类端口联接到计算机,但最广泛使用并且十分灵活的三种端口是USBRS-232并口和并行端口。总的来说,这种端口支持鼠标、鼠标、调制解调器、扫描仪、打印机、移动c盘和其它好多设备。了解怎样优化这种端口有助于发挥外围设备的最佳性能。作为基术的输入设备,鼠标和鼠标的配置对系统操作来说是非常重要的,用户可以借助几个配置文件和命令来调整鼠标重复速度、键盘布局和支持滚轮键盘等设置。扫描仪只是诸多外围设备中的一种,但它们约配置一般不如其他设备(例如复印机)那样显著。辛运的是linux 使用网络打印机,Linux在它的SANE软件包里寸扣描仪提供了挺好的支持,只要Linux支持用户所使用的扫描仪,用户只须要对配置文件进行少许更改就可以在Linux下扫描图象了。美RoderickW.Smith