漫談NTU300
王藹侯
魏嵩陽醫師問我NTU300的緣起,這兒就來回顧一下。
亂點立體圖(Random-dot
stereogram, RDS)是1960年Dr. Bela Julesz在貝爾實驗室(Bell Labs)發明的。
它是發明,不是發現,因為宇宙裡原本並沒有RDS。
1960另一個‘發明’是紅寶石雷射。宇宙裡並沒有雷射光,愛因斯坦預言同步光的可能性,於是1960有第一個實體雷射的出現。
1982我眼科R1時,林隆光醫師使用Titmus和TNO給病人測試立體感(大陸上叫立體視)。
Titmus屬於單眼可見形體(蒼蠅)的立體圖(Contour stereogram);TNO則是亂點立體圖(大陸上叫隨機點立體圖)(Random-dot
stereogram, RDS),單眼看不見立體圖裡隱藏的圖像。
小角度隱內斜視和兩眼不等視可能可以通過Titmus測試,但是沒法通過TNO檢查。
臨床上以亂點立體圖測試立體感最為人詬病的是一般日常生活的環境,並沒有如亂點圖那樣的情境,頂多是在尋找樹叢裡的小鳥或知了的時候,或許有一些亂點的味道存在。但是在一段時間的實證之後,我們知道亂點立體感的檢查,在斜弱視的診斷和篩檢上卻是很有用的工具。
形體立體圖和亂點立體圖的立體感機制是不一樣的:形體立體感,譬如Titmus,右眼看到一隻蒼蠅,左眼也看到一隻蒼蠅,大腦發現兩眼的蒼蠅落在座標的不同位置,其間有像差(disparity),將之轉化為深度覺,產生立體感;而亂點立體感,譬如TNO,右眼沒看見蝴蝶,左眼也沒看見蝴蝶,兩眼的影像融合之後,蝴蝶才浮現出來。但是兩眼是在融合甚麼東西呢?唯一可能的是融合亂點的花紋(texture)。兩眼的亂點花紋融合之後,發現埋藏著的像差,再將蝴蝶解析出來。

這是NTU300使用的320x240像點50%密度的亂點圖。所謂的花紋、texture,就是圖樣中有些地方黑點比較聚集,有些地方白點比較聚集所形成的花紋。
我很有興趣自製亂點立體圖。那時候的個人電腦是Apple-II,我套用幾個現成的軟體,靠著圖形的移位,兩張圖形的邏輯運算(.AND.、.OR.、.NOT.、.XOR.),事先準備兩張50%密度的亂點圖,一張作為前景、一張做為背景,再準備一張想要埋進亂點圖的黑白圖形,我設計了一套步驟流程,就可以製成隱藏著那圖形的亂點立體圖。
這個流程發表在1986羅馬的ISA(International Strabismological
Association)會議
– Random-dot stereogram made with personal computer -
ISA V Rome 1986。
這是製作亂點立體圖的流程的逐步解析,大家可以參考一下,
https://ahwang.url.tw/WebArticles/製作隨機點立體圖 逐步解析.htm
程式準備2張50%密度的亂點圖和一張要埋進亂點圖裡的黑白圖形,程式可以自動產生隱藏著那個圖形的亂點立體圖。
(Powerpoint檔,無法在Google雲端播放,請下載在電腦上播放。)
(Windows系統執行檔,無法在Google雲端執行,請下載在Windows系統的電腦上執行。)
(可能需要暫時關閉防毒軟體的“及時掃描”。)
Apple-II的運行速度是很慢的,圖形的解析度很低,左右跨幅只有320像點(pixels,picture elements)。亂點立體圖的兩眼半立體圖之間的像差(disparity)最少的極限就是只一個像點,
如果放在15吋的螢幕上展示,寬12吋 (1呎) (30.48cm)、高9吋。也就是橫幅320像點長30.48cm,以 30.48/320 /距離 x 180/pi x 60 x 60 = 300”
計算1像點視角為300秒角(也就是5分角)需要的測試距離是 65cm。
如果印在4x6吋相片上,寬6吋
(15.24cm)、高4吋。橫幅320像點長15.24cm,以 15.24/320 /距離 x 180/pi x 60 x 60 = 300”
計算,在距離 33cm處測試,1像點視角是300秒角。
各位常用的印在6x4吋相片上的NTU300,精確地講,在33cm距離作測試,立體感正好300秒角。
IBM PC的年代,張志豪醫師(去世)推薦使用QuickBASIC4.0,再到QuickBASIC4.5,製作NTU立體圖,他寫了許多副程式幫助加速程式的執行,也製作了許多其他的眼科檢查的電腦工具。
林隆光醫師曾希望我能製作150”的立體圖。在解析度的限制下,如同前段的計算,6x4相片上的立體圖,要在33x2cm = 66cm的距離測試,才是150秒的視角。距離66cm稍微遠了一點,測試不太方便。
再小角度的內斜視都不可能通過300秒角的亂點立體視
(小角度的內斜視是有可能通過形體立體圖Titmus的),臨床應用和視力篩檢應該是非常足夠了。
早期的電腦限制了我們使用更多的像點,未嘗不是一個幸運。如果使用的太多的像點,立體圖可能反而不容易閱讀。左圖是NTU300使用的320x240像點、50%密度的亂點圖,右圖是1280x960像點的亂點圖。太高的解析度讓亂點圖的花紋、texture變的不明顯,成為灰濛濛的一片。可資兩眼融像的花紋少了,藉以解析像差的資訊也少了,立體圖會變得不容易閱讀。

如果為了製作更低秒數的立體圖,不得不使用高解析度的亂點圖,製作好半立體圖之後要設法除去圖中高空間頻率(high
spatial frequency)的細緻部分,我們將半立體圖以數位旋積(digital convolution)處理幾次,留下低空間頻率的花紋好讓兩眼去融像。旋積運算移除了亂點圖的高空間頻率、細緻的部分,卻不會改變兩眼的亂點圖之間細微的像差(disparity)。

旋積要放在立體圖製作的最後步驟。如果先做旋積,再鑲入圖形、位移,圖形的邊緣就會露出單眼線索。大陸北京海軍醫院顏少明醫師(去世)的新版亂點立體圖(左圖),就看到埋藏圖形的單眼線索(右圖)。

亂點立體圖裡埋藏的圖形基本上是單色的。左、右眼各自的半立體圖都是黑點和白點構成的。為了給右眼和左眼分開觀看,將右眼半立體圖的黑白點套成藍黑色,給帶藍鏡片的右眼看;將左眼半立體圖的黑白點套成紅黑色,給帶紅鏡片的左眼看。這種以紅藍或紅綠作兩眼分離(binocular dissociation)的立體圖叫做anaglyph。
TNO是使用紅、綠作兩眼分離,我們嘗試過紅綠分離,發現效果不如紅藍
[事實上是青色(cyan)]
分離來得好。電腦的顏色是由紅、綠、藍(R, G,
B)三色組成,每一色有256階濃度(0~255),紅綠分離用的是紅(255,0,0)、綠(0,255,0),而紅藍分離用的是紅(255,0,0)、藍(0,255,255)。左圖是紅綠分離,右圖是紅藍分離。

右眼半立體圖套上青色,左眼半立體圖套上紅色,兩張圖以邏輯運算OR疊在一起,組合圖的像點有四種顏色:白、青、紅和黑 (見圖)。


兩眼亂點圖的背景也得左右岔開一些,否則左右兩張背景的亂點完全一樣,重疊一起,變成只有黑點和白點,埋藏在裡面的圖形就被看到了(左圖)。我們的經驗是至少岔開三四點以上才行。同理,兩眼亂點圖的圖形部分也不能太靠近,否則也會露出單眼線索(右圖)。

Depth = 5 pixel = (+5 pixels)
– (0 pixels) Depth = 4 pixel = (0 pixels)
– (-4 pixels)
初起時我將右眼半立體圖左移兩點,左眼半立體圖右移兩點。於是背景的平面浮出在實體的紙張之上,裡面埋藏的圖形又再浮於背景之上。因為右眼的亂點圖偏左、左眼的亂點圖偏右,兩眼要內聚(convergence)去做融像,有些內聚力弱的人就不容易讀到(左圖)。現在的版本是右眼半立體圖右移兩點,左眼半立體圖左移兩點,背景的融像需要較少的內聚,比較容易閱讀,融像之後背景看起來會沉下去,比實體的紙張要低下去(右圖)。

Depth = 2 pixel = (+6 pixels)
– (+4 pixels) Depth = 2 pixel = (-2
pixels) – (-4 pixels)
TNO Stereotest除了定量用、埋藏小精靈圖樣的480”, 240”, 120”, 60”, 30”和15”六對立體圖之外,前面還有三張33分角(=1980秒角)的學習、篩檢用的立體圖。
NTU300像差是一個像點(pixel)。我們嘗試模仿TNO製作33分角的NTU立體圖。最接近的方案是像差7個像點,立體感300x7
= 2100秒角 = 35分角。寫成NTU35,或者精準一點,寫成NTU35’,或者NTU2100”。
300秒角的NTU (NTU300”),圖形浮出背景1像點(相對高度),背景低於紙面4像點(絕對高度),於是圖形比紙面低下3像點(絕對高度),我們寫成Depth = 1 pixel = (-3 pixels)
– (-4 pixels)。大部分人只覺得圖形浮出於背景之上,但是如果請他仔細觀察圖形和外面紙張平面的相對深度,他們會發現圖形是低於紙張的平面的。
35分角的NTU (NTU35’
or NTU2100”),圖形浮出背景7像點(相對高度),背景低於紙面4像點(絕對高度),於是圖形比紙面高出3像點(絕對高度),我們寫成Depth = 7 pixel = (3 pixels) –
(-4 pixels)。大部分人初看會覺得圖形浮出於背景之上很多,比NTU300高很多,但是如果請他仔細觀察和外面紙張平面的相對深度,他們會發現圖形高於紙張的平面,而背景低於紙張的平面。
依據https://ahwang.url.tw/WebArticles/製作隨機點立體圖 逐步解析.htm 的方法,我們製作分享四張有趣的亂點立體圖如下:


大學眼科logo Depth
1 pixel = (-3 pixels) – (-4 pixels)


Arthur Jampolsky (AJ) 100歲生日賀禮 Depth 7 pixels = (+3 pixels) –
(-4 pixels)


眼 Depth 7
pixels = (+3 pixels) – (-4 pixels)


西洋棋盤 / Checkerboard Depth
7 pixels = (+3 pixels) – (-4 pixels)
我們最初使用底片相機拍攝電腦螢幕,護貝成正反面5張卡片(左圖),後來發展出數位相片沖洗,我們直接由電腦圖檔印製相片,並且在Kodak相片沖洗店和老闆一起調整CMYK
(Cyan, Magenta, Yellow, Key/Black)的色調,NTU300的顏色和清晰度都提升很多(右圖)。

林隆光醫師參考TMC (Tokyo Medical College)色盲檢查簿的名稱,將我們的亂點立體圖命名為NTU
(National Taiwan University)立體感檢查
(國立台灣大學亂點立體圖,NTU
RDS)。學齡前幼兒和學童篩檢使用像差300秒角的NTU
RDS,於是有了大家熟悉的NTU300。
TNO是荷蘭製作的亂點立體圖,包含三張33’(=1980”)的學習、篩檢用立體圖和三張定量用的立體圖,定量用的立體圖分別是480”,
240”, 120”, 60”, 30”和15”。
如果在6x4吋相片上,要繪製如同TNO的15秒角的立體圖,也就是1個像點的視角要小到15秒角,在40公分的測試距離,橫幅需要有多少個像點呢?計算如下:
6 x 2.54 / n / 40 x 180/pi x
60 x 60 = 15” à
n = 5239 pixels
也就是在6x4吋相片上需要有5239 x 3493個像點才可能製作出15秒角的立體圖。大家比較看看,NTU的解析度只有320 x 240像點!我們到目前都沒有嘗試這樣高的解析度!橫幅6吋,包含5239像點,接近900dpi (dots per inch),印表機也得有一定的檔次才辦得到,而荷蘭在1970~80年代就已經出版販賣了。
立體感測試如同視力測試,是對空間尺寸解析度的測試,都以視角為測量的單位。
視力可以分辨1分角,是Snellen 1.0的視力;只能分辨2分角,是Snellen 0.5的視力。
NTU300”是兩眼的半立體圖之間有300秒角、也就是5分角的像差;NTU35’則是兩眼的半立體圖之間有35分角、等同與2100秒角的像差。
臨床測試的時候,病人看不見形狀,我們請他靠近一點,看是不是可以看到。就如同視力表看不到,請他走近一點去看,視角變大,可能就看到了。
病歷上紀錄”NTU300(+)
20公分”,表示原本33公分處300秒角的立體圖他要靠近到20公分才看得到,立體感大約是300 x
33 /20 = 495秒角。臨床測試當然沒必要如此精準的數字,大約知道他的立體感不及於300秒角,但是也不必用到NTU35分角。之後回診的時候,如果他在35~40公分可以通過NTU300,就知道他的立體感進步了。
製作NTU立體圖是我博士論文的一部分,論文中有以TNO的秒數來核對NTU300的秒數。
立體感全有、全無的病人,亦即通過TNO60秒角和通不過TNO33分角的病人,沒法用來核對秒數。
我們找出TNO檢查立體感不是很好 [TNO60(-)]、也不是全無立體感 [TNO33(-)] 的病人,人數不是很多,比較的結果,NTU300秒角的秒數完全吻合:僅c能讀TNO33分角或者TNO480秒角,但是無法通過TNO240秒角的病人6位,都沒法通過NTU300秒角;能讀TNO240秒角,但是無法通過TNO120秒角的病人2位,也可以通過NTU300秒角(見表)。

林隆光醫師1990~1994執行了衛生署委託的“台灣地區學齡前幼童視力篩檢推廣前驅計畫”,建議視力篩檢包含(1)遠視力和(2)NTU300兩個項目。




國健局(現國健署)2000起全面推行學齡前幼童(1)遠視力和(2)NTU300的篩檢計畫。
其間李淑美醫師曾經質問為什麼使用NTU300來篩檢立體感?NTU300可有甚麼公信力?林隆光醫師於是要我將NTU300申請專利(如圖)。

幾年後專利年費暴漲。我們原就不以牟利為目的,那時候台灣大學也還沒有專利費的補助,我們因此就沒有繼續延續這項專利了。
NTU300主要可以篩出小角度內斜視、兩眼不等視…等等單眼的弱視。
小角度內斜視、兩眼不等視、單眼水晶體內小石頭般白內障…等單眼的弱視,學校視力篩檢的時候,小朋友弱視眼看不到視力表,常會偷偷移開遮住好眼的遮眼板偷看,而沒有篩檢出來(偽陰性)。兩眼最佳矯正視力相差太多的小朋友是沒法通過NTU300篩檢的。
大角度內斜視家長自然會帶去看眼科醫師,不屬於篩檢的範圍。
NTU300”檢查通過,學校的視力回條寫上’立體感正常’,個人覺得臨床上就夠用了。
TNO三張33’篩檢之後,定量480”, 240”, 120”, 60”,
30’ 和15”。大部分人只看得到60”,30”、15”則沒法通過。做這麼多步驟,臨床診斷上感覺不比測試NTU300”一項多出多少information。
門診檢查病人,NTU300”(秒角)之外多一個NTU35’(分角)(=2100”)的用處如下:
NTU35’失敗,報告寫’立體感異常’。
NTU35’通過而NTU300”失敗,最多的兩種情況是Esophoria和Anisometropia。算是subnormal stereopsis。跟家長解釋他的小朋友立體感不是很好,但也不是完全沒有立體感,(有進步的空間)。
Hyperopia + ET戴鏡後立體感可能慢慢恢復到正常。
X(T)術後有一點DVD可能會是subnormal stereopsis,希望可以慢慢進步到NTU300”(+)。
國立台灣大學亂點立體圖
(National Taiwan University Random-dot
Stereogram, NTU RDS)
NTU300” NTU35’
(or NTU2100”)




左邊是像差1像點、NTU300秒角;右邊是像差7像點、NTU35分角 (or NTU2100秒角)
大學眼科的資訊室將NTU300設計成跨平台的程式,https://www.eyedoctor.com.tw/Stereopsis_Screening/,無論是Windows,iOS,Android、macOS…的網路瀏覽器(browser)都可以使用。

我們曾經想建議國健署改用這個NTU300做學齡前和學童的視力篩檢,第一,測試流程饒有趣味;第二,免去相片版NTU300不環保的缺點。國健署希望能由醫學院/醫學中心主其事,目前這個想法還沒成事。
另一個問題是紅藍鏡片的問題。每種廠牌螢幕使用的發光體(phosphor)不同,有些螢幕的顏色和紅藍眼鏡的顏色沒法完全匹配。
我設計這格子圖,透過藍鏡片,看成橫條紋;透過紅鏡片,看成直條紋。

殘影越少越好。殘影越少,紅藍分離的立體圖(anaglyph)越容易閱讀。
通常的情況,都是藍鏡片沒問題、紅鏡片要沒有殘影比較困難。
我現在用Acer螢幕,紅藍鏡片分離左右眼影像的效果非常好。
這是3呎x 6呎、2mm厚的大張壓克力裁切成5x5cm的紅藍片,顏色非常適用。

一個想法是分發給大家這個顏色不錯的紅藍壓克力片,可以直接拿在眼前看立體圖,也可以將之拆開,請眼鏡行裁切壓克力片,鑲在眼鏡架上使用。

如果要使用網路在電腦上做NTU300篩檢,紅藍眼鏡的另一選項是上蝦皮購買。 請留意:右眼藍色、左眼紅色。
在電腦上測試NTU300”和NTU35’,另外印一張紙卡或相片給語前幼兒
(兩歲半到三歲半) 用手比出他/她看到的形狀(如圖)。NTU檢查的’可測試年紀’通常比E視力表早兩三個月。

臨床測試NTU,兩三題回答正確之後,我喜歡拿遮眼板遮住病人左眼,說“右眼看不到三角形?”,再改遮右眼,說“左眼也看不到三角形?…你不是只有兩隻眼睛,兩眼都看不到三角形,那三角形是哪兒來的?”持續遮著右眼,換下一題立體圖,問:“沒辦法回答吧?”。
用這個程序去告訴病人立體感是一種雙眼的視覺,單眼是沒法看到的。在這同時,觀察這位小朋友對兩眼單眼都看不到形狀是不是有好奇心,是不是有科學家的特質。
相對於卡片版的NTU,在電腦上測試NTU,你可以多出手來做上述的遮眼檢查,多出許多趣味。
請大家試用看看 https://www.eyedoctor.com.tw/Stereopsis_Screening/
,最後鼓掌歡呼的畫面,猜想接受篩檢的小兒,圍觀前面測試中的同學後,應該會躍躍欲試,歡樂中可以很快結束測試。(我沒實測過,有誰可以幫忙實測、回報一下?)
檢查完立體感,我們再跟家長解釋說:“內斜視、鬥雞眼的人,即便兩眼都是1.0的視力,也沒法通過立體感的檢查。”
“我們一般講測試視覺功能,簡單地說,就是兩眼各別的視力,和兩眼合作使用的立體感這三個數字。”
大學眼科的資訊室設計的立體感測試的跨平台的程式
包含有NTU300”和NTU35’
也有運動立體式(Motion Stereopsis, Binocular
Depth-from-Motion, BDFM)的測試程式
立體感測試 – https://www.eyedoctor.com.tw/Stereopsis/
立體感篩檢 – https://www.eyedoctor.com.tw/Stereopsis_Screening/