• 談談與計算化學有關的作圖的圖像清晰問題

    談談與計算化學有關的作圖的圖像清晰問題

    文/Sobereva@北京科音  2021-Jul-16


    0 前言

    寡人在網上答疑的時候,總是看到有人問“得到的圖像不清晰怎么辦”、“怎么讓圖像更清晰”這種問題,語義不明,也不知道對方說的“清晰”到底指什么,對方也不說他覺得不清晰是怎么個不清晰法,也不給出個截圖來說明,令人感覺很莫名其妙。筆者忍不住寫個小文,把各種初學者所謂的“不清晰”的可能情況都羅列一下,便于他們自己對照判斷如何解決。此文也有助于一些缺乏相關常識的計算化學工作者了解怎么改進圖像質量。此文內容很多地方用流行的可視化程序VMD(http://www.ks.uiuc.edu/Research/vmd/)來舉例說明,這里是針對VMD 1.9.3版而言的。


    1 圖片分辨率太低

    關于圖片分辨率的事我在《談談怎么正確認識論文投稿時對圖像分辨率的要求》(http://www.shanxitv.org/511)里專門做過科普。有些人所說的不清晰可能是指圖片的分辨率(當前語境下等于圖片的像素)太低。顯然,讓產生圖片的程序輸出更高分辨率的圖像就完了。比如:
    (1)Multiwfn程序(http://www.shanxitv.org/multiwfn)保存一維、二維、三維圖像的分辨率分別通過settings.ini文件里的graph1Dsize、graph2Dsize、graph3Dsize參數來設置。
    (2)GaussView通過File - Save Image方式保存圖片的像素由界面上的Enlarge Width and Height by控制。比如如果這里設的是3x,而窗口的大小是400*300,那么保存出的圖像就是1200*900像素。
    (3)VMD可以通過File - Render方式保存圖片,如果渲染器選的是Snapshot或者Tachyon (internal, in-memory rendering),那么渲染得到的圖片和OpenGL窗口的大小是相同的。如果想要更高分辨率的圖,要么把窗口拉大再渲染,要么在用第三方渲染器POV-Ray或VMD自帶的獨立的Tachyon渲染器渲染的時候直接指定渲染出的圖片像素。用Tachyon渲染器的時候如何通過命令行指定渲染出的圖片分辨率在《用Multiwfn+VMD做RDG分析時的一些要點和常見問題》(http://www.shanxitv.org/291)里我專門說過,這里不再累述。

    有些可視化程序沒有單獨的保存圖片的功能,你只能靠截屏來得到圖片文件。此時你若要想得到高像素的圖像,就應當把窗口最大化,并且把窗口里的體系也放大到盡可能大,然后再截圖。如果還嫌圖片像素不夠高,去找個高分辨率屏幕的機子,在那上面截圖。


    2 過度有損壓縮圖像

    十分常用的jpg是一種有損壓縮的圖像格式。Photoshop、IrfanView等像樣的圖片編輯或者圖片觀看程序在保存圖像成jpg格式時,都可以選擇jpg文件的質量;設得越高,則圖像質量相對于原圖降低得越少,但圖像文件就越大。顯然,如果保存時圖片質量設得太低,必然得到的圖像會比較模糊,并且還可能伴有色彩失真。

    對于科研方面的圖,特別是可能用到文章里的圖,我平時都存成png格式,這是非常好的無損壓縮格式,不會像jpg格式那樣降低圖片質量(代價是尺寸更大),又比bmp那種未經壓縮的無損格式小得多得多,也比常見的tif那種無損壓縮格式尺寸更小。


    3 圖像被拉大了

    有些人在保存/生成圖片的時候圖像的像素并不是很高,然而他把圖插入到文章里之后,還手動把圖的尺寸給拉大了,這時候圖片能不模糊么?只有ps、eps、wmf等格式儲存的矢量圖才能無損縮放,而png、bmp、tif、jpg等位圖格式只要放大了圖片注定會看起來模糊,這屬于圖像處理的最基本常識。


    4 一些程序自動壓縮了圖片

    有些人問,怎么圖片原本看起來是清晰的,插入XXX程序之后就不清晰了。這看具體情況。比如powerpoint(筆者這里用的是2016),在“選項”-“高級”的“圖像大小和質量”一欄中,有個選項是“不壓縮文件中的圖像”,這個選項默認是沒有選中的。這種情況下,在保存pptx文件時,對于ppi(和《談談怎么正確認識論文投稿時對圖像分辨率的要求》http://www.shanxitv.org/511里說的dpi本質上相同)過高的圖像,其像素就會自動壓縮到特定的ppi。如果你把一個圖片插入到powerpoint里,并且把圖片尺寸縮小,然后保存pptx文件,此時由于圖片的ppi往往會高于閾值,遂被powerpoint自動壓縮,即當前pptx里的這個圖片的像素已經低于原圖了。之后重新打開這個pptx文件,若再把這張圖拉回原先的大小,就會看到圖片已經模糊了。只有把“不壓縮文件中的圖像”選上才可以避免powerpoint自動壓縮圖像。

    還有其它的程序可能也有根據ppi自動壓縮圖片的設置,應仔細去選項菜單里仔細看看,弄不明白的話可以Google搜搜看有無別人遇到過并提供了解決方案。


    5 直接截圖,而不是保存圖像

    有些可視化程序為了顯示速度比較快,直接在屏幕上顯示的時候用略低的圖像質量,而在保存圖片的時候才自動設高圖像質量。因此,可視化程序凡是有專門的保存圖片的功能的話就不要直接截圖。

    對于Multiwfn顯示的三維分子結構圖、等值面圖,特別是使用mesh或者solid face+mesh風格顯示等值面的時候,尤其建議保存成高像素的圖片文件,然后再縮成想要的尺寸,這比起直接在三維窗口里看到的圖像質量好太多了,還順帶起到抗鋸齒效果(見后文)。


    6 保存圖像的格式不合適

    要分清楚矢量圖和位圖的區別。如果你的圖片沒有平滑的色彩過渡,而是以線條、文字和離散的顏色構成的,那么保存成矢量圖比較好,可以無損縮放,而且線條看起來很平滑。比如在Multiwfn里按照《使用Multiwfn繪制紅外、拉曼、UV-Vis、ECD、VCD和ROA光譜圖》(http://www.shanxitv.org/224)和《使用Multiwfn繪制NMR譜》
    http://www.shanxitv.org/565)繪制光譜圖、按照Multiwfn手冊4.4節的例子繪制等值線圖,我都建議以矢量圖形式保存為pdf格式的文件。如果圖片有連續的色彩過渡,比如Multiwfn、VMD、ChimeraX等程序顯示的等值面圖,以及Multiwfn主功能4繪制的填色圖,則建議用png等位圖格式。

    如果違背上面的建議,把線條、文字和離散的顏色構成的圖保存成png等格式,線條看起來可能就不如保存成矢量格式時看著那么平滑。如果把色彩連續變化的圖保存成矢量圖,圖片看起來就會有很難看的色階。


    7 被投稿系統降低了圖像質量

    在大多數期刊投稿時,在最后確認提交之前,一般投稿系統會生成一個用于預覽的pdf文件。轉換成pdf文件的時候會對圖片自動進行處理,例如把過高分辨率的圖像自動降低分辨率、適當對圖片進行有損壓縮從而避免pdf尺寸太大,這可能導致在預覽pdf文件時發現圖片清晰度變低了,有點糊了。這一般沒辦法避免,也不用太在意,一般也不至于影響審稿。這時候的圖片清晰度和最終出版時候的圖片清晰度沒直接關系。


    8 沒用抗鋸齒

    顯示3D物體時,如果沒在可視化程序里開啟抗鋸齒,而且顯示器的dpi又不是太高,就會明顯看到3D物體邊緣的線條毛毛糙糙的,可能有的人說的不清晰是指這個。很多可視化程序里都有抗鋸齒(antialiasing)選項,打開之后就能讓邊緣鋸齒感減輕很多,變得平滑不少。有些程序里抗鋸齒有不同級別,越高級別抗鋸齒效果越好,但代價就是對GPU性能要求越高。有些可視化程序里可能沒有抗鋸齒選項,但也沒關系,你可以進入顯卡驅動,往往在里面可以設置強行對某個程序用某種抗鋸齒設定。比如VMD的抗鋸齒選項(Display - Antialiasing)往往沒法直接選,因此你可以在顯卡驅動里直接設,具體怎么操作和你的顯卡的顯示芯片制造商以及驅動版本有關,自行摸索或Google。如果你的顯卡驅動是Windows自帶的,那么是沒有顯卡驅動面板的,應當自行去顯示芯片的廠家官網上下載并裝上。

    還有一種人工對圖片實現抗鋸齒的做法是保存很高像素的圖像,然后用Photoshop、IrfanView等程序把圖片縮小(降低像素),此時程序會做重新采樣,可以等效實現抗鋸齒效果。


    9 沒有關閉霧化效果

    很多程序默認都開啟了霧化效果來體現物體距離屏幕的位置。比如在VMD里,默認是黑背景,并且開著霧化效果(即Display - Depth cueing是打開的)。此時距離屏幕越遠的物體就顯得越黑。但由于VMD對霧化的默認衰減設置不太理想,所以即便是距離屏幕較近的物體看起來也是霧蒙蒙的,在《用Multiwfn+VMD做RDG分析時的一些要點和常見問題》(http://www.shanxitv.org/291)的一開始就有個示意圖。有些初學者由于缺乏常識,就把霧化效果理解成了不清晰。我建議用VMD的人要么關閉Depth cueing,要么在Display - Display Settings里恰當設置Cue Mode,使霧化效果至少不會影響到距離屏幕較近的物體,而只對中、遠距離的物體才生效。


    10 繪制等值面圖時格點間距太大

    不管什么可視化程序,在繪制某個函數的等值面圖之前都需要獲得這個函數在特定一塊三維空間中均勻分布的各個格點上的函數值,這叫格點數據。格點間距越大,得到的等值面就越粗糙、越有棱有角,格點間距很大時甚至有的地方的等值面可能還不連續,也許有些人說的不清晰就是指這種情況。格點間距如何影響RDG函數的等值面質量在《用Multiwfn+VMD做RDG分析時的一些要點和常見問題》(http://www.shanxitv.org/291)的2.1節做了展現。顯然,等值面效果不好的問題只要把格點間距設小一些即可緩解,在諸如Multiwfn程序里提供了非常豐富靈活的方式設定格點。但無疑減小格點間距的代價是計算的總格點數變多了,耗時增高了。


    11 光源設置問題

    顯示3D物體時,如果光源設置不當,可能導致有些地方太暗,令有的人覺得不清晰。解決方法就是調節光源設置。比如在VMD 1.9.3里有4個光源,默認開啟前兩個,可以在Display里選擇相應的光源來切換打開或關閉的狀態。另外,在Mouse - Move Light里選擇一個光源后,可以在圖形窗口里拖動鼠標來調節光源位置。而在Multiwfn里,可以在窗口上方的菜單里選擇Other settings - Set lightings,然后選擇哪些光源打開或關閉。


    12 顯示風格設得不合理

    大多數可視化程序里都可以設置不同的顯示效果,如果設置不當可能會造成看起來不清晰。比如VMD 1.9.3程序默認用的是line方式顯示,而且粗細只有1.0,因此直接顯示出的體系看起來太細,如果是沒有成鍵的單個原子,圖形窗口里會顯示成只有一個像素大小的點,視力不好的同志不僅根本看不清楚,還甚至會以為是VMD顯示有問題,漏掉了原子,筆者在網上答疑時就見過這樣的人。顯然把顯示方式改成諸如CPK、Licorice之類的就能看清楚了。筆者在《VMD初始化文件(vmd.rc)我的推薦設置》(http://www.shanxitv.org/545)中推薦的默認設置中把默認的line風格的線條粗細設大到了2.0也是為了讓默認的顯示效果看著更清楚。

    久久精品国产99久久香蕉