五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用python控制掃描儀的嘗試

2023-08-14 22:23 作者:repalm  | 我要投稿

用掃描儀軟件控制掃描相機(jī),拍出的畫面是被壓縮過的,因?yàn)檐浖凑誂4幅面來掃描,與我掃描相機(jī)4*12厘米的比例完全不符,但是官方或者第三方掃描儀軟件都無法單獨(dú)改變XY軸的分辨率,掃描范圍的修改也是有限的,因此就需要一些編程技巧來解決問題,這里我用的是python 3.67。

用愛普生掃描軟件拍出來的照片原圖

這張圖片的分辨率為:11339*10200,拉到ps里,把寬度改成31339之后,畫面才稍微正常一些,但是這樣會損失一部分畫質(zhì)(其實(shí)擴(kuò)放很大,也看不出來)


twain是第三方開源的掃描儀驅(qū)動程序,它可以讓你不必掌握復(fù)雜的編程知識,就能靈活的控制掃描儀,軟件的安裝和調(diào)試,我參考了這篇文章:https://blog.csdn.net/runwuwusheng1230/article/details/121490944

文章最下面給出的twain_module.py是我需要的,把它拷貝下來放在python的這個文件夾里:C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Lib\site-packages

按照文章里的案例測試掃描儀,雖然軟件的安裝并不復(fù)雜,但安裝成功,也不保證就能順利的實(shí)現(xiàn)控制,這點(diǎn)我沒有深入研究,只是通過換電腦來解決的。。。


平臺搭建好之后,就可以進(jìn)入?yún)?shù)設(shè)置環(huán)節(jié),

還是twain_module.py這個文件,拉到最下面,找到如下代碼:


if dpi:

??????????????? sd.set_capability(ICAP_XRESOLUTION, TWTY_FIX32, dpi)?

??????????????? sd.set_capability(ICAP_YRESOLUTION, TWTY_FIX32, dpi)??

修改dpi,就能改變x或者y軸的掃描分辨率

對了,掃描腳本還沒貼出來,其實(shí)很簡單,就兩行:


import twain_module

twain_module.acquire(r'./test.bmp',dpi=200,pixel_type='gray',frame=(0.0,0.0,8.27,9.9))


括號里的參數(shù)分別代表:定義照片名和格式,dpi(按我的經(jīng)驗(yàn),這個地方最好不要動),像素類型:灰度;彩色;黑白,照片坐標(biāo)(左,上,右,下)單位是英寸。


照片坐標(biāo)后兩個數(shù),就是在軟件理解下,照片的“縱向尺寸和橫向尺寸”,由于掃描相機(jī)去除了反射鏡,掃描區(qū)域的寬度從A4的210mm變成了掃描CCD的長度,就是40mm,掃描長度由A4紙的297mm變成了我買的軌道行程,就是120mm,但是這twain目的仍然是讓你去掃描文件而不是拍照的,所以在掃描尺寸的設(shè)置上,還得按照A4紙的尺寸進(jìn)行轉(zhuǎn)換,畢竟驅(qū)動電機(jī)用的還是原裝的那套機(jī)制,步進(jìn)電機(jī)的步距角,步數(shù),都沒變,我就假裝它掃的還是A4那么大的紙張,只是通過修改照片的長度,讓電機(jī)多轉(zhuǎn)幾圈,這樣我就可以實(shí)現(xiàn)3:1的畫幅比例,官方軟件是沒法這么玩的,你只能通過損失寬度來實(shí)現(xiàn)3:1畫幅,一根CCD上的像素沒法被充分利用,而且畫幅也變小了,經(jīng)過測試,長度為9.9英寸時(shí),我的第一代導(dǎo)軌正好走滿,但是我換了新導(dǎo)軌之后,這個長度還要再加一點(diǎn)。所以frame這個參數(shù)的目的,放在掃描相機(jī)上,就是讓CCD走滿導(dǎo)軌的行程。


圖片實(shí)際的比例,還是通過修改dpi來實(shí)現(xiàn)的,針對愛普生v30系列掃描儀,X軸dpi為1800,Y軸dpi為600是比較合適的組合,這個dpi是不能隨意寫的,如果改成X=1200,Y=400,或者X=2400,Y=800,都有可能報(bào)錯,具體原因我沒有研究過。


運(yùn)行這個腳本,得到的圖片,直接就是3:1比例的寬畫幅,不需要再到ps里修改分辨率了(還需要旋轉(zhuǎn))。

但是也有一些問題:

  • bmp格式的圖片在ps圖層里顯示為“索引”,需要選擇“圖像-模式-RGB顏色”之后,圖片才可以編輯

  • 無法使用IR作為光源類型,如果不設(shè)置光源類型,拍出來的灰度圖會有重影,像拍攝彩色圖片那樣,是三個通道的直接疊加

    /* ICAP_LIGHTSOURCE values (LS_ means Light Source) */

#define TWLS_RED 0
#define TWLS_GREEN 1
#define TWLS_BLUE 2
#define TWLS_NONE 3
#define TWLS_WHITE 4
#define TWLS_UV 5
#define TWLS_IR 6

  • pixel_type='gray'的灰度最高只能是8位,而官方或者vuescan都可以掃描16位灰度

    關(guān)于這個問題,官網(wǎng)給出了解釋:

    ICAP_BITDEPTH,在twain 3.8或3.9版本里,對于灰度圖,默認(rèn)給的位寬都是8bit,如果要使用12,14,16bit位寬的話,另一個參數(shù)ICAP_XFERMECH 應(yīng)該設(shè)置成 TWSX_MEMORY模式,它還有另外兩個模式,TWSX_NATIVE,?TWSX_FILE,默認(rèn)值是TWSX_NATIVE,就是說掃描出來的原始數(shù)據(jù)先放掃描儀內(nèi)存里的時(shí)候,才可以使用更高的位寬,這里我還沒有找到現(xiàn)成的案例,暫時(shí)先不研究它了。

最后放一個epson官方的twain頭文件解釋,看這個可以解決twain編程里遇到的絕大部分問題:

https://www.epsondevelopers.com/twain-programming-guide-epson-scan/capability-reference/






用python控制掃描儀的嘗試的評論 (共 條)

分享到微博請遵守國家法律
元朗区| 新泰市| 视频| 甘孜| 察隅县| 南京市| 澄城县| 曲靖市| 京山县| 武夷山市| 罗江县| 嘉禾县| 泸州市| 曲阜市| 新津县| 诸城市| 福州市| 平湖市| 仪征市| 乐清市| 镇赉县| 泾阳县| 金溪县| 衡东县| 手游| 祁东县| 达拉特旗| 青岛市| 北安市| 科技| 汝阳县| 且末县| 衢州市| 恭城| 常山县| 林甸县| 哈巴河县| 清流县| 临洮县| 阳原县| 镇江市|