CZ207797A3 - Způsob vytváření trojrozměrného obrazu ze zobrazení dvojrozměrného obrazu a zařízení k provádění tohoto způsobu - Google Patents
Způsob vytváření trojrozměrného obrazu ze zobrazení dvojrozměrného obrazu a zařízení k provádění tohoto způsobu Download PDFInfo
- Publication number
- CZ207797A3 CZ207797A3 CZ972077A CZ207797A CZ207797A3 CZ 207797 A3 CZ207797 A3 CZ 207797A3 CZ 972077 A CZ972077 A CZ 972077A CZ 207797 A CZ207797 A CZ 207797A CZ 207797 A3 CZ207797 A3 CZ 207797A3
- Authority
- CZ
- Czechia
- Prior art keywords
- unsigned
- pixel
- image
- display device
- optical
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B30/00—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images
- G02B30/50—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images the image being built up from image elements distributed over a 3D volume, e.g. voxels
- G02B30/54—Optical systems or apparatus for producing three-dimensional [3D] effects, e.g. stereoscopic images the image being built up from image elements distributed over a 3D volume, e.g. voxels the 3D volume being generated by moving a 2D surface, e.g. by vibrating or rotating the 2D surface
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/15—Processing image signals for colour aspects of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/167—Synchronising or controlling image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/189—Recording image signals; Reproducing recorded image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/243—Image signal generators using stereoscopic image cameras using three or more 2D image sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/261—Image signal generators with monoscopic-to-stereoscopic image conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/302—Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays
- H04N13/305—Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays using lenticular lenses, e.g. arrangements of cylindrical lenses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/324—Colour aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/388—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume
- H04N13/395—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume with depth sampling, i.e. the volume being constructed from a stack or sequence of 2D image planes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/08—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
- H04N7/0803—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division using frequency interleaving, e.g. with precision offset
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/25—Image signal generators using stereoscopic image cameras using two or more image sensors with different characteristics other than in their location or field of view, e.g. having different resolutions or colour pickup characteristics; using image signals from one sensor to control the characteristics of another sensor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/286—Image signal generators having separate monoscopic and stereoscopic modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/302—Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays
- H04N13/307—Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays using fly-eye lenses, e.g. arrangements of circular lenses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/302—Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays
- H04N13/322—Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays using varifocal lenses or mirrors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/327—Calibration thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/334—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] using spectral multiplexing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/337—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] using polarisation multiplexing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/361—Reproducing mixed stereoscopic images; Reproducing mixed monoscopic and stereoscopic images, e.g. a stereoscopic image overlay window on a monoscopic image background
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/388—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume
- H04N13/39—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume the picture elements emitting light at places where a pair of light beams intersect in a transparent material
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/388—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume
- H04N13/393—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume the volume being generated by a moving, e.g. vibrating or rotating, surface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0081—Depth or disparity estimation from stereoscopic image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2213/00—Details of stereoscopic systems
- H04N2213/003—Aspects relating to the "2D+depth" image format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Image Generation (AREA)
- Stereoscopic And Panoramic Photography (AREA)
- Instruments For Viewing The Inside Of Hollow Bodies (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Endoscopes (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Television Systems (AREA)
- Devices For Indicating Variable Information By Combining Individual Elements (AREA)
- Air Bags (AREA)
- Devices For Conveying Motion By Means Of Endless Flexible Members (AREA)
- Details Of Television Scanning (AREA)
- Overhead Projectors And Projection Screens (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Description
Oblast techniky
Vynález se týká techniky zobrazování trojrozměrného obrazu, a to zejména takové techniky, při níž se nevyžaduje používání speciálních helem nebo brýlí.
| Dosavadní, stav techniky ( Vytvoření plného trojrozměrného obrazu bylo vážným technologickým cílem po značnou část dvacátého století. Již v roce 1908 Gabriel Lippman vynalezl způsob vytváření pravdivého trojrozměrného obrazu scény používajícího fotografickou desku exponovanou přes muší oko vytvořené čočkovou fólií z malých pevných čoček. Tato technika se stala známou jako integrální fotografie a zobrazování takto vytvořených obrazů se provádělo přes čočkovou fólii z fixních čoček téhož druhu. Lippmanův vývoj a jeho pokračování v následujících letech, viz např. US patent č. 3,878,329, však nedokázalo vytvořit technologii, která by byla přímo použitelná pro vytváření obrazů, které by šlo jednoduše vyrábět, které by byly adaptovatelné na pohyblivou prezentaci nebo by byly • schopné přímo reprodukovat elektronicky generované obrazy, t což je převládající formát této poslední části tohoto stole'4 tí .
V průběhu času docházelo k dalšímu rozpracovávání troj rozměrného zobrazování formou vytváření obrazu ze soustavy obrazových složek, což vyústilo do různých technických zlepšení, která zahrnují různá provedení žebrových, čočkových ί
i nebo mřížkových folií optických prvků pro výrobu stereoobratoto · ♦ • ·« · · zů z jediného speciálně zpracovaného obrazu, viz např. US patent č. 4,957,311 nebo US patent č. 4,759,017, aby byly citovány pouze poslední;relevantní příklady. Většina z těchto řešení trpí společnými soustavami nedostatků, které zahrnují přísná omezení fyzické polohy pozorovatele vůči pozorovacímu stínítku, sníženou kvalitu obrazu způsobenou rozdělením intenzity vytvářeného obrazu mezi dva oddělené obrazy a v mnoha řešeních paralaxa pozorovatelná v pouze jednom směru.
Další dosud 2námé techniky pro generování skutečných trojrozměrných obrazů zahrnují rastrování fyzikálního objemu, a to buď mechanickým rastrováním laserového paprsku přes rotující spirálové stínítko nebo difuzní oblak par, sekvenčním aktivováním soustavy vnitřních fosforových stínítek v obrazovce nebo fyzikálním odchylováním zakřiveného zrcadla pro vytvoření verze konvenčního zařízení pro vytváření obrazu s proměnným ohniskem. Všechny tyto techniky jsou však neohrabané, obtížné jak z hlediska výroby, tak z hlediska pozorování, a celkově je není mošno upravit tak, aby je bylo možno umístit na běžný trh.
V průběhu téže časové periody se objevila soustava technologií týkajících se zařízení, která na sobě nesl pozorovatel, a to včetně brýlí používajících dvoubarevných nebo křížově polarizovaných filtrů pro oddělení současně zobrazovaných duálních obrazů, a helmy zobrazující virtuální realitu, z nichž všechny se vztahují na výrobu stereopsie, to jest příjmu vjemu hloubky prostřednictvím spojení odděleného obrazu levého a pravého oka. Některé z těchto technik vytvářely stereoobrazy pozoruhodné kvality, ačkoliv obecně na účet pohodlí pozorovatele, napětí očí, jasu obrazu a akcepI tovatelnosti částí pozorující populace, která nemůže přímo a pohodlně přijímat takové stereozobrazení. Toto je prokázáno v nedávno se objevivších oftalmologických a neurologických studiích, které hovoří o škodlivých a potenciálně dlouho trvajících účincích dlouhého používání stereozobrazovacích systémů, ač už je na sobě má pozorovatel nebo jsou ji* ného typu.
i Japonský .patentový spis číslo 620 77794 popisuje dvojrozměrný zobrazovač, na němž je obraz vytvořen diskrétními obrazovými body, přičemž zobrazovač je opatřen soustavou optických prvků scentrovaných příslušně před obrazovými body, a prostředky pro individuální změnu účinné ohniskové délky každého optického prvku pro změnu zdánlivé vizuální vzdálenosti od pozorovatele, nacházejícího se před zobrazovačem, na němž je každý jednotlivý obrazový bod znázorněn, čímž se vytváří trojrozměrný obraz.
Optické prvky v tomto japonském patentu jsou čočky vytvořené z nemagnetických tekutých krystalů, přičemž ohniskor vá délka čoček může být měněna změnou elektrického pole, které mění scentrování krystalů. Tento systém vyžaduje tran« zistory a další elektrické spoje nasměrované ke každé mikročočce, a speciální utěsnění mezi skleněnými deskami je nev1 zbytné. Navíc, dosažená změna efektivní ohniskové délky je velmi malá a vyžaduje použití přídavných optických prvků, jako jsou velká zvětšovací skla, což činí systém nepřípustně veliký a nevhodně omezuje příčný pozorovací úhel obrazu, který je k dispozici.
Podstata vynálezu
Předmětem tohoto vynálezu je zajistit zlepšený zobrazovač trojrozměrného; obrazu,-v němž by byly překonány· nedostatky systému popsaného ve výše zmíněné japonské publikaci.
Toho je dosaženo tím, že každý optický prvek má ohniskovou délku, která se progresivně mění podél ploch orientovaných obecně rovnoběžně s obrazem, kde podstata vynálezu spočívá v tom, že zařízení je opatřeno prostředkem pro malý posun místa., v němž je světlo uvnitř obrazového bodu emitováno, a to podle požadované hloubky tak, že je zde odpovídající posuv místa vstupu světla podél vstupní plochy optického prvku, čímž je efektivní ohnisková délka dynamicky měněna a zdánlivá vizuální vzdálenost od pozorovatele se mění podle posuvu místa vstupu světla.
V jednom výhodném provedení jsou optické prvky vytvořeny jako jedna nebo více čoček, ale mohou být namísto toho vytvořeny ze zrcadel nebo případně z kombinace lámavých a odrazových ploch.
Ve své nej jednodušší formě jsou obrazové body a překrývající optické prvky pravoúhlé a ohnisková vzdálenost každého optického prvku se mění progresivně podél délky optického prvku. V tomto případě bod vstupu světla je posunut lineárně podél délky. Avšak i jiné tvary optických prvků a typů posuvu jsou v rozsahu vynálezu. Například optické prvky mohou být kruhové a mít ohniskovou délku, která se mění radiálně vzhledem ke středové optické ose. V takovém případě světlo vstupuje jako plošky mezikruží, které jsou posouvány radiálně.
Stejně tak, ačkoliv změny optických charakteristik
4a v optických prvcích na úrovni obrazového bodu jsou zde prezentovány jako by byly způsobeny změnami ve tvaru povrchu fyzikálních prvků, bylo v laboratoři úspěšně experimentováno s vytvářením takových variací optických charakteristik prostřednictvím použití optických materiálů s proměnným indexem, kde index lomu se podél optického prvku progresivně mění. . .
«1' • * · · * * 0 000 * • 0 · · 0 0 0 000 0* 000 000 00 0
Vztah mezi ohniskovou délkou a posuvem může být lineárM ní nebo nelineární.
Pro zajištění vstupu světla na úrovni obrazového bodu do soustavy optik na úrovni obrazového bodu lze použít soustavy přístrojů. V jednom příkladném provedení tohoto vynálezu je tímto přístrojem pro vstup světla obrazovka umístěná za soustavou optik tak, že světelná čára může být rozmítána horizontálně za každou řadou optik na úrovni obrazového bodu a představována na nepatrně odlišném vertikálním posunu od rozmítané čáry při průchodu ža každou optikou. V různých příkladných provedeních může být přístroj pro vstup světla plochý panelový zobrazovací přístroj používající technologii jako jsou tekuté krystaly, elektroluminiscence nebo plasmové zobrazovací přístroje. Elektroluminiscenční přístroje zahrnují soustavy světlo emitujících diod. Ve všech těchto příkladných provedeních je zobrazování pohybu představováno rozmítáním celých obrazů následně zhruba stejným způsobem jako u běžných dvourozměrných zobrazování pohybu. V tomto způsobu zobrazování pohybu může být představováno na četnostech rámců omezených pouze schopností rozmítaného světelného paprsku být nepatrně vertikálně manipulován pro každý obrazový bod. Ačkoliv v žádném případě technologie není tímto limitována, příkladné provedení tohoto vynálezu tak jek je zde popsáno bylo úspěšně prováděno v laboratořích přihlašovatele na Četnostech rámců v rozsahu až lil rámců za sekundu.
V ještě dalším výhodném provedení vynálezu může celé osvětlení obrazu na úrovni obrazových bodů přijít ze speciálně připraveného filmu zachycujícího pohyblivý obraz nebo
i i»' ze speciálně připraveného nehybného fotografického filmu, v němž každý rámec nebo film je osvětlován zezadu běžným způsobem, ale pozorován soustavou optik téhož typu na úrovni obrazových bodů . V tomto příkladném provedení každý přenášený světelný obrazový bod v každém průsvitném rámci je umístěn specificky podél povrchu lineárního vstupu optik tak, že jeho vertikální vstupní bod generuje světelný bod umístěný ve specifické vzdálenosti od pozorovatele, v níž se požaduje příjem tohoto daného obrazového bodu, stejně tak jako v elektronicky osvětlených příkladných provedeních, které byly popsány výše. Takové běžně známé systémy zahrnují promítání trojrozměrného zobrazení do volného prostoru odrazem od konkávního zrcadla nebo optiky s podobným promítáním obrazu. Tato technika je značně přesvědčivější než promítání konvenčního plochého dvojrozměrného zobrazení v tom, že promítaný trojrozměrný zobrazovaný obraz ve volném prostoru má ve skutečnosti reálnou pozorovatelnou hloubku. Doposud byla úspěšně použita konkávní zrcadla se zakřivením sférickým, parabolickým a hyperbolickým, ale i jiné konkávní tvary jsou zřejmě možné.
Ve všech těchto příkladných provedeních může být trojrozměrný obraz pozorován přímo nebo použit jako zdroj reálného obrazu pro jakýkoliv běžně známý systém promítáni reálného obrazu.
Přehled obrázků na výkresech
Tyto a další předměty a význaky tohoto vynálezu budou zjevnější z následujícího popisu ve spojení s připojenými výkresy. V těchto výkresech budou podobné součásti označeny ««·· · «·«··· • · * « · · · ··· ·· «·· Μ» ·· · podobnými vztahovými značkami. Na obrázku 1 (a) je zobrazení jednoho příkladného provedení optického přístroje na úrovni obrazového bodu v pohledu zešikma zezadu, obrázek l{b) je zobrazením odlišného příkladného provedení téhož typu optické soustavy na úrovni obrazového bodu, obsahujícího tři op* tické prvky, obrázek 2 znázorňuje způsob, kterým změna bodu vstupu kolimovaného světelného paprsku do zadní strany optického přístroje (vstupní konec) mění vzdálenost v prostoru i
od„pozorovatele, v níž se tento světelný bod objevuje, obrázek 3(a) znázorňuje, jak toto proměnné vstupní osvětlení optického přístroje na úrovni obrazového bodu může být v jednom příkladném provedení zajištěno obrazovkou, obrázek 3 (b) znázorňuje odlišný pohled na proměnné vstupní osvětlení a scentrování optiky na úrovni obrazového bodu s obrazovými body na fosforové vrstvě obrazovky, obrázek 3{c) zobrazuje vztah mezi velikostí a poměrem stran kolimovaného vstupního světelného paprsku k velikosti a poměru stran optického přístroje na úrovni obrazového bodu, obrázek 4 (a) znázorňuje, jak je soustava optik na úrovni obrazového bodu představována před zdrojem osvětlení, jakým je obrazovka monitoru počítače, televizor nebo jiný v podstatě plochý stínítkový zobrazovací přístroj, obrázek 4 (b) znázorňuje druhé výhodné příkladné provedení vzorce obrazových bodů obrazovky, které může být použito pro tento účel, obr. 5 Znázorňuje způsob jakým'je signál hloubky přidáván do horizontálně rozmítaných rastrových řádků v obrazu televizního nebo počítačového monitoru, obr. 6 znázorňuje jak může být specifický bod vstupu světla do optiky na úrovni obrazových bodů měněn za použití filmu s pohyblivými obrazy nebo nějaké jiné formy osvětlené• · · · · · · ·«·· • · · · · · ··· ·· *·* φφφ φ« φ ho průsvitného předmětu jako zdroje osvětlení, obr. 7 znázorňuje, jak lze použít soustavu optik na úrovni obrazového bodu pro sledování průběžného pásku filmu s pohyblivými obrazy pro sledování následných rámců filmu v zobrazení trojrozměrných pohyblivých obrazů, obr. 8 zobrazuje způsob v němž hloubková složka zaznamenaného obrazu může být odvozena prostřednictvím zachycení obrazu používajícího jednu hlavní zobrazovací kameru a jednu sekundární kameru, obrázek 9 (a) znázorňuje.proces, kterým signál hloubky může být retroaktivně odvozen pro konvenční dvourozměrné zobrazení, čímž je tento obraz schopen trojrozměrného zobrazení na vhodném zobrazovacím přístroji, obrázek 9 (d) znázorňuje propojení a činnost obraz zpracujících přístrojů, které lze použít pro přidání hloubky do videozobrazení podle postupu znázorněného na obrázku 9(a), obr. 10 znázorňuje aplikaci technik hloubkového zobrazení na úrovni obrazového bodu odvozenou v průběhu tohoto vývoje na trojrozměrné zobrazení tištěných obrazů, obr. 11 znázorňuje rozložení energie běžného obrazového signálu NTSC indikující nosné jasu a barvy, obr. 12 znázorňuje totéž rozložení energie obrazového signálu NTSC, ale se signálem hloubky zakódovaným do spektra, obrázek 13 (a) znázorňuje funkční návrh obvodu v běžném televizním přijímači, který typicky řídí vertikální vychýlení rozmítaného elektronového svazku v obrazovce, obrázek 13 (b) znázorňuje tytéž obvody s přidáním obvodů požadovaných pro dekódování hloubkové složky z videosignálu se zakódovaným třetím rozměrem pro vhodnou změnu chování vertikálního vychýlení rozmítaného elektronového paprsku pro vytvoření trojrozměrného efektu, obrázek 14 znázorňuje výhodné pří9 • * • 4« · « · ♦ · * .i »
kladné provedení elektronických obvodů na bázi televize, které provádí funkci výběru hloubky a zobrazení, které jsou znázorněny na obr. 13 (b), obr. 15 znázorňuje alternativní optickou strukturu na úrovni obrazového bodu, v níž se poloha vstupního světla mění radiálně spíše než lineárně, obr. 16 je podobný obrázku 2, ale zobrazuje alternativní prostředky pro měnění vizuální vzdálenosti světla emitovaného z jednotlivého obrazového bodu od pozorovatele, obrázek 17 znázorňuje, jak je uspořádání znázorněného na obr. 16 dosaženo v praktickém příkladném provedení.
Příklady provedení vynálezu
Obrázek la znázorňuje ve značně zvětšeném tvaru jedno možné příkladné provedení optického prvku 2 použitého pro měnění vzdálenosti od pozorovatele, v níž se kolimovaný bod vstupu světla do tohoto přístroje může jevit. Pro jasnost výkladu, velikost takového optického prvku 2 se může značně měnit, ale je zamýšlena, aby byla přizpůsobena velikosti zobrazovaného obrazového bodu a jako taková bude pro televizní monitor typicky v řádu jednoho milimetru šířky a tří milimetrů výšky. Optiky tak malé jako 0,5 mm x 1,5 mm byly demonstrovány pro monitor počítače, který je konstruován pro pozorování z větší blízkosti, a tak velké jako 5 mm široké a 15 mm vysoké, což je velikost zamýšlená pro aplikaci ve velkorozměrových komerčních zobrazovačích, navržených pro pozorování ze značné vzdálenosti.
Materiály, z nichž byly tyto optiky na úrovni obrazového bodu vyrobeny, byly až doposud buď tavené křemíkové sklo s indexem lomu 1,498043 nebo jeden ze dvou plastům a to po··· • « « ·· · lymetalmetakrylát s indexem lomu 1,498 nebo metylmetakrylát s indexem lomu 1,558. Tímto se však nenaznačuje, že toto jsou jediné nebo ani výhodné optické materiály, z nichž mohou být takové optiky na úrovni obrazového bodu vyráběny.
*
Na obrázku 1 (a) je optický prvek na úrovni obrazového bodu pozorován šikmo zezadu, a jak je zřejmé, zatímco čelní plocha 1 tohoto optického přístroje je průběžně konvexní odshora až dolů, zadní povrch je tvarově proměnný postupně od konvexního nahoře ke konkávnímu dole. Úspěšně byly použity jak lineární, tak nelineární průběhy změn optických vlastností. Kolimovaný světelný paprsek je promítán přes optický přístroj ve směru optické osy a jak je zřejmé, sběrné optické lomové plochy přístroje jimiž tento kolimovaný světelný paprsek prochází, se budou měnit s pohybem vstupního bodu paprsku odshora dolů na. tomto přístroj i.
Ačkoliv příkladné provedení zobrazené na obrázku 1 (a) obsahuje jednu pevnou plochu a jednu proměnnou plochu, jsou možné i variace tohoto návrhu, v nichž jsou proměnné obě plochy nebo v nichž jsou více než dvě optické lomové plochy. Obrázek 1(b) například znázorňuje druhé příkladné provedení, v němž optiky na úrovni obrazového bodu jsou složené optické přístroje sestávající ze tří optických prvků. Laboratorní testy naznačují, že složené přístroje optiky na úrovni obrazového bodu mohou zajišťovat zlepšenou kvalitu obrazu a zlepšený pozorovací úhel oproti optickým zařízením sestávajícím z jednoho prvku, a ve skutečnosti nejúspěšnější příkladné provedení této technologie dnes používá tříprvkovou optiku. Ovšem za účelem jasnosti výkladu se zde uvedené optické soustavy na úrovni optického prvku budou znázorňovat
. .1
P jako soustavy sestávající z jediného prvku.
Obrázek 2 znázorňuje ve zhuštěné formě pro jasnost představy oči 1 pozorovatele v odstupu před optickým prvkem 2 na úrovni optického bodu. Kolimovaný světelný paprsek může vstoupit do zadní části optického přístroje 2 na různých bodech, z nichž tři jsou znázorněny jako světelně paprsky 5., 5, a 7. Poněvadž ohnisková vzdálenost přístroje 2 se mění v závislosti na vstupním bodě světelného paprsku, obrázek .2 znázorňuje, .. jak.bude výsledný světelný bod představován pozorovateli na různých zdánlivých bodech 5a, 6a. nebo 7a v prostoru, odpovídajících jednotlivým dříve popsaným a očíslovaným místům vstupních paprsků. Ačkoliv body 5a, 6a, 7a jsou ve skutečnosti vertikálně vzdáleny jeden od druhého, tento vertikální posun není detekovatelný pozorovatelem, který vidí pouze zdánlivý posun v hloubce.
Obrázek 3 (a) znázorňuje, jak v jednom příkladném provedení tohoto vynálezu každý jednotlivý optický přístroj na úrovni obrazového bodu může být umístěn proti ploše obrazovky použité jako zobrazovací zdroj. V tomto obrázku optický prvek 2 leží na skleněném čelu 8 obrazovky, za nímž je běžná vrstva fosforů £, která svítí, když na ní dopadne emitovaný a kolimovaný Svazek elektronů znázorněný v různých polohách v tomto obrázku jako svazky 5b, 5b, 7b. Pro každou z těchto tří příkladných poloh elektronového svazku a pro každou další polohu elektronového svazku v prostorových mezích optického přístroje na úrovni optického bodu bude světelný bod vstupovat na jedinečném bodě zadní části optiky na úrovni obrazového bodu. Vertikální poloha elektronového svazku se může měnit za použití zcela běžných vychylovacích cívek elektromagnetického svazku, jak se používají v běžných obrazovkách, podle specielně připraveného signálu, ačkoliv pokusy podniknuté v laboratoři naznačily, že zobrazování na vysoké četnosti rámců, to jest podstatně nad sto rámců za sekundu, mohou vyžadovat vychylovací cívky elektronového svazku, které jsou konstruovány tak, aby lépe reagovaly na vyšší vychylovací kmitočty, které jsou nezbytné při vysoké Četnosti rámců. Vzorek fosforů na obrazovce však musí souhlasit s uspořádáním optik na úrovni obrazového, bodu, a to jak v délce tak v prostorovém uspořádání, to jest optika musí být schopna být osvětlena pod ní ležícím fosforem v celé. své navržené lineární vstupní ploše. Obrázek 3 (b) znázorňuje toto uspořádání přes šikmý zadní pohled na optiku 2 na úrovni optického bodu. V tomto schématu sousední fosforové obrazové body 35. z nichž devět je zobrazeno, budou mít tři různé barvy jako v běžné barevné obrazovce a budou mít v podstatě pravoúhlý tvar. Je třeba si všimnout, že velikost a poměr stran, to jest poměr délky a šířky každého fosforového obrazového bodu, v podstatě souhlasí s poměry stran na vstupním konci optiky na úrovni obrazového bodu, k níž je fosforový obrazový bod přivrácený. Jak je zřejmé při pozorování vystínovaného fosforového obrazového bodu, elektronový svazek rastrující přes fosforový obrazový bod může být zaostřen na jakémkoliv bodě podél délky fosforového obrazového bodu, znázorněného zde týmiž třemi příkladnými elektronovými svazky 5b. 6b. 7b. Výsledkem je, že bod, na němž se emituje světlo, je mírně posunut v rozmezí tohoto obrazového bodu.
Obrázek 3 (c) znázorňuje důležitost velikosti a poměru stran světelného paprsku, který vstupuje do optického pří-
• · · · · • ····· * · « * ··· »·· ·· · stoje 2 na úrovni optického prvku, který je zde znázorněn zezadu. Vizuální zobrazení hloubky v televizní obrazovce je v požadavcích na rozlišení podobnější zobrazení chrominance či barvy než zobrazení luminance, to jest jasu, či černobílé složky videozobrazení. Tímto je míněno, že většina z přijímaného jemného detailu ve videozobrazení je přenášena jasovou složkou obrazu s relativně vysokým rozlišením, nad níž je zobrazena chrominanční složka s nižším rozlišením. Je možné mít mnohem nižší rozlišení v chrominanci, poněvadž oko odpouští mnohem více pokud jde o příjem barvy než pokud jde o příjem detailu obrazu. Výzkum v laboratoři naznačil, že Oko podobně odpouští pokud jde o příjem hloubky v televizním obrazu.
Poté, co bylo toto řečeno, je však zobrazení pozorovatelné hloubky stále generováno fyzikálním pohybem světelného paprksu, který vstupuje do lineárního optického přístroje na úrovni optického bodu, a bude zřejmé, že čím větší je rozsah pohybu tohoto vstupního světelného paprsku, tím větší bude příležitost ovlivnit pozorovatelnou hloubku.
Na obrázku 3 (c) optický přístroj 2 na úrovni optického prvku je přibližně 3x tak vysoký jak široký. Kolimovaný vstupní světelný paprsek 66a. který je zdě znázorněn v řezu, je kruhový a má průměr aproximující šířku optického přístroje 2., Kolimovaný vstupní světelný paprsek 66b je rovněž kruhový ale má průměr přibližně jednu pětinu délky optického přístroje 2. Toto na jedné straně umožňuje kolimovanému vstupnímu světelnému paprsku větší rozsah pohybu než je tomu u kolimovaného vstupního světelného paprsku 66a pro zajiště*í ní většího rozsahu pozorovatelné hloubky ve výsledném obra14
• · | * · | • · | |
• ·« | |||
• · | » · | ||
• · | « | • | |
• · * · | • ·· | ♦ · |
··» ze, ale na druhé straně toto je na úkor plochy průřezu osvětlujícího paprsku, která je pouze 36% plochy paprsku 66a. Pro udržení, srovnatelného jasu ve výsledném obrazu by intenzita vstupního paprsku 66b musela být asi 2,7x vyšší než intenzita vstupního paprku 66a. což je nárůst, který je zcela dosažitelný.
Světelný paprsek 66c je stejně Široký jako optický přístroj na úrovni optického prvku, ale je to horizontální ovál o výšce světelného paprsku 66b. to jest pouze, jedna pětina výšky optického přístroje 2. Výsledný průřez oválu osvětlovacího paprsku je méně jasný než kruhový paprsek 66a, ale téměř 2x tak jasný než menši kruhový paprsek 66b. Tento návrh je vysoce funkční a zaostává, pouze za perfektně pravoúhlým průřezem světelného paprsku 66d. To je ve skutečnosti průžez paprsku použitého v nejnovějším a nejvýhodnějším příkladném provedení tohoto vynálezu
Obrázek 4(a) znázorňuje, jak jsou optiky 2 na úrovni obrazového bodu uspořádány do soustavy řad, z nichž dvanáct je zobrazeno za účelem ilustrace, a jak jsou tyto umístěny na čele zdroje osvětlení zde zobrazeného -jako obrazovka 10 v jednom příkladném provedení. Jak je řízený elektronový svazek rastrován přes řadu optik na úrovni obrazového bodu, jeho vertikální posuv se mění individuálně pro každý obrazový bod a vytváří tak horizontální rastrovací řádek, který je za účelem ilustrace znázorněn jako řádek 15. zobrazený jednak čárkovaně za soustavou obrazových bodů a odděleně pro jasnost pevnou čárou uvnitř elipsy nalevo. Jak je zřejmé, horizontální rastrovací řádek, který je v běžných zobrazeních obrazovky přímý, je pro každý jednotlivý obrazový bod mírně posunut od středové Čáry rastru, čímž se vytváří obraz, který, měníce svou vzdálenost od pozorovatele jak je to provedeno obrazový bod od obrazového bodu, obsahuje podstatné rozlišení v příjmu vjemu hloubky.
Zkušenosti ukázaly, že malá vmezeřená štěrbina mezi jednotlivými optickými prvky na úrovni optického bodu minimalizuje vzájemné pronikání signálů mezi optickými prvky, což má za následek zvýšenou jasnost obrazu a že tato izolace optik může být dále zvýrazněna vložením černého neprůhledného materiálu do těchto mezilehlých prostorů. Vmezeřené štěrbiny řádu 0,25 mm se ukázaly být zcela úspěšnými, ale byly demonstrovány i štěrbiny o šířce 0,10 mm a i tyto štěrbiny fungovaly perfektně jako optické izolátory, zejména když byly vyplněny výše zmíněným neprůhledným materiálem.
Soustavy těchto optik na úrovni optického bodu byly vytvořeny v procesu ručního připojováíní každé individuální optiky k povrchu vhodné obrazovky za použití opticky neutrálního tmelu. Tento proces je samozřejmě pracný a je náchylný k chybám, umístění vzhledem k omezením přesnosti ruční mechaniky. Soustavy optik však byly velmi úspěšně vyráběny procesem vytváření kovových předloh kompletních soustav optik v negativu a pak vylisováním použitelných soustav optik do termoplastických materiálů pro vytvoření lisované repliky předlohy, která je pak přilepena ve své celosti k povrchu obrazovky. Provádění replik s velmi jemnými detaily na povrchu vylisováním bylo pozvednuto na vysokou úroveň v posledních letech vzhledem k technickým požadavkům na vytváření replik médií s velmi jemnými detaily a bohatými na informace, jako jsou laserové disky a kompaktní disky, což ♦ · · · · · · ·♦· * • · · · · · ·>· · ··· ··© ©· © jsou média, z nichž se s vysokou přesností a za nízké náklady vytvářejí repliky do laciných plastických materiálů. Předpokládá se, že výhodné výrobní techniky pro generování masově vyráběných soustav optik na úrovni optického prvku budou i nadále procesem vylisování do termoplastických materiálů. Vynálezci rovněž úspěšně vytvořili v laboratoři soustavy optik na úrovni obrazového bodu technikou injekčního lití. Doposud byly tři vrstvy různých optik na úrovni opticJ i • kého bodu, z nichž každá představuje optický prvek, úspěšně . scentrovány pro vytvoření soustavy tříprvkových mikrooptik.
V některých výhodných provedeních jsou tyto vrstvy slepeny, aby se pomohlo udržet scentrování, ale v jiných jsou upevněny na svých okrajích a nejsou vzájemně slepeny.
Při umístění optik na úrovni obrazových bodů na plochu obrazovky nebo jiného světlo emitujícího přístroje je přesné scentrování optik s podložními obrazovými body kritické. Vertikální rozcentrování způsobuje, že výsledný obraz má permanentní zkreslení v zobrazované hloubce, zatímco horizontální rozcentrování způsobuje omezení příčného pozorovacího rozsahu umožňovaného třídimenzionálním zobrazovacím přístrojem. Optické napojení mezi světlo generujícími optic>:$ kými body a vstupní plochou optik na úrovni obrazového bodu J je také zvýrazněna minimalizováním fyzické vzdálenosti mezi osvětlujícím fosforem a vstupní plochou optik tam, kde je to možné. V prostředí obrazovky toto implikuje, že sklo Čelní plochy obrazovky, k níž jsou optiky přiloženy, by mělo být o minimální tloušťce, kterou je mošno si dovolit při odpovídající strukturální integritě. Ve velkých obrazovkových monitorech může být tato čelní plocha tlustá až 8 mm, ale bylo
..- — — W .W ww v««* ·***'···»»+· * 0· « · · · · • » * 0 0 · · ··· « *7 ·’♦♦·· ·· “ ±/ “ 101 »· «·· tt| 00 « úspěšně ukázáno použití těchto optik se speciálně konstruovanou obrazovkou, s tloušťkou čelní stěny 2 mm. Bylo zkonstruováno vysoce úspěšné příkladné provedení obrazovky, v němž byly optiky na úrovni obrazových bodů ve skutečnosti vytvořeny z čelní plochy obrazovky.
Obrázky 3 (b) a 4 (a) znázorňují v podstatě pravoúhlý vzorek obrazových bodů 35 zobrazovací obrazovky a lineární optické prvky 2 na úrovni obrazových prvků, to jest matici, v níž jsou řady přímé a. scentrované obrazový bod. za obrazovým bodem, a to s řadami jak nahoře, tak dole. Tento vzorek obrazových bodů a optik vytváří vysoce přijatelný trojrozměrný obraz, ale nelze předpokládat, že je to jediný takový vzorek, který je v rozsahu vynálezu možný.
Obrázek 4 (b) znázorňuje druhý příkladný vzorek obrazových bodů 35. v němž horizontální skupiny tří obrazových bodů jsou vertikálně posunuty vůči těm, které jsou nalevo a napravo od této skupiny, čímž se vytváří taškový vzorek skupin trojic obrazových bodů. Poněvadž tato konfigurace byla vytvořena v laboratoři, skupiny trojic obrazových bodů obsahují vždy jeden červený obrazový bod 35r, jeden zelený obrazový bod 35g a jeden modrý obrazový bod 35b. Tak jako v běžné dvourozměrné televizní obrazovce, barevné obrazy se vytvářejí z relativního osvětlení skupin nebo triád obrazových bodů z těchže samých tří barev. Odlišné uspořádání tří barev je v každé triádě možné, ale uspořádání zobrazené na obrázku 4(b) je příkladné provedení, které bylo doposud v laboratoři vytvořeno.
Obrázek 5 znázorňuje malou modifikaci signálu hloubky horizontálních rastrovacích čar v rastrovaném obrazu jako je ,ϋ
00 | 0 | |||
0 0 | 0 | 0 0 | 0 0 | |
00 | 0 | |||
0 0 | 0 0 | 0 | ||
0 0 | 0 | 0 | ||
0 0 | 00 | 00« | 00 |
0000 * 0 * 0
000 ·
0 • 0 0 běžný televizní obraz. V běžné televizní obrazovce nebo monitoru počítače znázorněném vpravo nahoře na obr. 5, každý individuální obraz v pohybové sekvenci je vytvářen elektronovým svazkem rastrujícím horizontálně řádek za řádkem směrem dolů na stínítku znázorněném na obrázku 5 čtyřmi representativními rastrovými čarami 17. Toto vysoce pravidelné rastrování je řízeno elektronikou televizního přístroje nebo počítačového monitoru, a to generátorem 16 horizontálního rastrovacího řádku, a ani variace v luminanční nebo barvonosné složce signálu nevytvářejí variace v pravidelném postupu horizontálních rastrovacích řádků shora dolů.
Tento vynález přidává k tomuto pravidelnému postupu variaci ve formě malého posuvu od přímého horizontálního rastru, který vytváří hloubkový účinek. Taková variace je fyzikálně uskutečněna použitím generátoru 18 signálu hloubky, kde signál hloubky se přidává prostřednictvím sčítačky 12 k přímému horizontálnímu řádku pro vytváření malých variací ve vertikální poloze každého horizontálního rastrovacího řádku, čímž se vytvářejí řádky, které representativně připomínají řádky 20. Generátor signálu hloubky, znázorněný na obr. 5, je generické funkční vyjádření. V televizním přístroji je generátor signálu hloubky běžný dekodér obrazového signálu, který v současnosti vybírá luminanční, barvonosnou a časovači informaci z přijatého obrazového signálu a který je nyní doplněn jak je popsáno níže pro vybírání informací o hloubce, která byla zakódována do tohoto signálu zcela analogickým způsobem. Podobně v počítači je generátor hloubkové složky softwérem řízená obrazová karta, jako je obrazová karta VGA, která v současné době zajiščuje luminanční, •0 ··»· * *0 ·*·· · · · · 0 0 · • 0* · 0 * · · •00« 0 0 · 000 0 _ ΊΟ . · 0 · 0 0 00
000 00 000 000 00 0 barvonosnou a časovači informaci pro monitor počítače a která rovněž zajistí programem řízenou informaci o hloubce pro tento monitor.
Obrázek 6 znázorňuje způsob, kterým lze použít zezadu osvětlený obraz z filmu 14 pro zajištění řízeného vstupního osvětlení pro optický přístroj na úrovni optického bodu v dalším výhodném příkladném provedení tohoto vynálezu.
V tomto příkladu část filmu, která je umístěna za zobrazeným optickým prvkem je neprůhledná s výjimkou jediného průhled- ného bodu, vytvořeného pro umožnění vstupu světla do optického přístroje v požadovaném bodě. Filmový pásek je běžněosvětlen zezadu, ale pouze světelnému paprsku 5c je umožněno, aby průhledným bodem ve filmu prošel optickým prvkem 2.
Jak je zřejmé, tato situace je analogická situaci na obr.
3, na níž řízený elektronový svazek v obrazovce byl použit pro výběr umístění osvětlovacího svazku. Použité zezadu osvětlené obrazy na filmu mohou být libovolné velikosti a byla postavena příkladná provedení používající průsvitných bodů velikých až 8 palců x 10 palců.
Obrázek 7 znázorňuje způsob, jakým může být soustava 11 optických prvků 2 na úrovni optického bodu, z nichž dva£ náct je zobrazeno za účelem ilustrace, použito pro zobrazení Z obrazů ze specielně připraveného filmového pásu 13.. Optická soustava 11 je na svém místě držena držákem 12. Obraz na filmovém pásu 13 je běžným způsobem zezadu osvětlen a výsledný obraz zaostřen běžným systémem projekčních čoček, zde představovaným čárkovaným kruhem 22, na soustavu li, která je koaxiální s filmovým pásem 12, a projekční čočkou 22 na optické ose 23. Generovaný trojrozměrný obraz může být pozo•to ···» • · •« « · · · · * · · * • toto to · toto·
-Λ · « · · · ······
-20- · · · · · ·· ··· ·« ··· ··· toto to rován přímo nebo může být použit jako generátor obrazu pro projektor trojrozměrného reálného obrazu známého typu. Generované trojrozměrné obrazy mohou být pozorovány jako nehybné obrazy nebo ve sledu jako skutečné trojrozměrné pohyblivé obrazy s toutéž četností rámců jako běžné filmy. V tomto příkladném provedení mohou být jednotlivé obrazové body ve filmovém pásu 13 značně menší než ty, které se používají pro televizní zobrazení, poněvadž výsledné obrazové body jsou zamýšleny pro zvětšení při projekci, přičemž výhoda rozlišení fotografického filmu vůči televiznímu zobrazení snadno stráví toto zmenšení velikosti obrazového bodu.
Obrázek 8 znázorňuje scénu v níž se používá dvou kamer pro určení hloubky každého objektu ve scéně, to jest vzdálenosti kteréhokoliv objektu ve scéně od hlavní zobrazovací kamery. Snímaná scéna zde v pohledu shora je představována pevným obdélníkem 24, pevným čtvercem 25 a pevnou elipsou 2£, každý v různé vzdálenosti od hlavní zobrazovací kamery 27 a tím každý mající odlišnou hloubku ve snímané scéně.
Hlavní zobrazovací kamera se používá ke snímání scény v jejím základním detailu z umělecky preferovaného směru. Sekundární kamera 28 je umístěna v určité vzdálenosti od první kamery a snímá scénu zešikma a tím zachycuje odlišný pohled na tutéž scénu současně s hlavní zobrazovací kamerou. Dobře známé techniky'geometrické triangulace mohou být pak použity pro určení skutečné vzdálenosti od hlavní zobrazovací kamery, v níž je každý objekt scény.
Výhodným způsobem, kterým takové výpočty mohou být prováděny a výsledný signál hloubky generován, je v postprodukčním stupni, v němž výpočty týkající se generování
0 00 0 | 0 00 | 0 0 0 0 | ||
0 00 | 0 | 0 | 0 0 | • |
• 0 *0 | 0 0 | 0 0 0 | 0 | |
0 0 0 | 0 | • | 0 | 0 |
• •0 0« | 00 0 | 00« | 0 * | 0 |
signálu hloubky jsou prováděny off-line, to jest po uskutečnění snímání obrazu a obecně na místě vzdáleném od místa snímání obrazu a při rychlosti generování signálu hloubky, která nemusí být vztažena k rychlosti snímání obrazu v reálném čase. Druhým preferovaným způsobem generování signálu hloubky je provádění tohoto potřebného výpočtu v reálném čase, to jest v podstatě při snímání obrazu. Výhodou generování signálu hloubky v reálném čase je, že umožňuje produkci živého trojrozměrného zobrazení.. Výpočetní požadavky na výrobu v reálném čase jsou však podstatně větší než požadavky na proces off-line, v němž rychlost může být snížena pro možnost použití nižší výpočetní schopnosti za nižší náklady. Pokusy prováděné v laboratoři naznačují, že pro provádění požadovaných výpočtů v reálném čase, které je výhodné z důvodů ceny a kompaktnosti elektronického designu, lze použít číslicových signálních procesorů určených pro zpracování obrazu, to jest Čílicových obrazových procesorů, z nichž oba jsou specializované procesory s úzkou funkcí, ale s vysokou rychlostí.
Poněvadž sekundární kamera 28 se používá pouze pro zachycení objektů z úhlu odlišného od úhlu hlavní zobrazova- - > ·· · čí kamery, tato sekundární kamera může mít poněkud nižší zobrazovací kvalitu než hlavní zobrazovací kamera a tím může být i levnější. Zejména při aplikacích s pohyblivými obrazy, zatímco hlavní zobrazovací kamera bude nákladná a bude používat drahý film, sekundární kamera může být pevná kamera filmového typu nebo videokamera. Proto v kontrastu k běžným technikám stereoskopického filmování v nichž je třeba používat dvě kamery, z nichž každá používá nákladný 35 mm nebo
♦· • ·« · mm film, poněvadž každá z nich je hlavní zobrazovací kamerou, technika podle vynálezu vyžaduje použití pouze jedné vysoce kvalitní nákladné kamery, poněvadž je zde pouze jedna hlavní zobrazovací kamera.
Zatímco tato komparativní analýza dvou obrazů téže scény získaných z různých úhlů Se ukázala být nejúspěšnější, je také možné získat poznatky o hloubce ve scéně použitím čelně umístěných aktivních nebo pasivních čidel, které nemusejí být inherentně zobrazovací čidla. V laboratoři bylo úspěšně dosaženo kompletního přiřazení hloubky celé schény, obrazový bod po obrazovém bodu, které bylo v laboratoři pojmenováno jako hloubková mapa, použitím soustavy komerčně dostupných ultrazvukových detektorů pro zjištění odraženého ultrazvukového záření, které bylo použito pro osvětlení scény. Podobně byl úspěšně použit rastrující infračervený detektor pro postupné snímáni odraženého infračerveného záření, které bylo použito pro osvětlení scény. Konečně v laboratoři byly uskutečněny úspěšné pokusy s použitím mikrovlnného záření jako osvětlovacího zdroje a s mikrovlnnými detektory pro snímáni odraženého záření. Tato technika může být zejména užitečná pro snímání trojrozměrných obrazů za použití radarového systému .
Obrázek 9 (a) znázorňuje základní kroky v procesu, jímž mohou být pro běžné dvourozměrné zobrazení odvozeny signály hloubky, čímž se umožní proces zpětného nastavení trojrozměrného obrazu na běžné dvojrozměrné zobrazování jak filmu, tak videa.
Na obrázku 9 (a) jsou tytéž řady tří předmětů 24. 28, a 26, které byly znázorněny v pohledu shora na obrázku 8, • Φ φ φ φφ φ · «φφφ ·« ·· φφ • ΦΦ Φ * V · __ · φ φ φ · · · ··· ·
-23- φφφ ·· · φ φφφ ·φ »φφ φφφ φφ nyní pozorovány na monitoru zepředu. Ve dvourozměrném monitoru 29 není samozřejmě zřejmý rozdíl v hloubce pro pozorovatele .
V procesu přidání hloubkové složky k zobrazování dvourozměrných obrazů podle vynálezu je scéna nejdříve digitalizována v počítačové pracovní stanici za použití obrazové digitalizační desky. Kombinace softwéru definice předmětu, použití dobře známých technik detekce hrany a jiných technik pak definuje každý jednotlivý předmět ve scéně tak, že s každým předmětem může být zacházeno individuálně za účelem dodatečného přiřazení hloubky. Kde softwér není schopen adekvátně definovat a separovat objekty automaticky, lidský editor provádí vyjasnění podle svého úsudku za použití myši, světelného pera, dotykového stínítka a ukazovátka nebo podobných ukazovacích zařízení pro vyjasnění a definování předmětu. Jakmile je scéna oddělena do individuálních předmětů, lidský editor podle svého úsudku postupně definuje pro softwér relativní vzdálenosti od kamery, to jest zdánlivou hloubku každého předmětu ve scéně. Tento proces zcela závisí na úsudku editora a bude zřejmé, že špatný úsudek bude mít za následek produkci zkreslených trojrozměrných scén.
V následujícím kroku v procesu softwér postupně rastruje všechny obrazové body uvnitř scény a přiřazuje hloubkovou složku každému jednotlivému obrazovému bodu. Výsledkem procesu je složka hloubky na rastrovacím řádku 31 na monitoru
30. která představuje representativní hloubkový signál, který lze získat z řádky obrazových bodů přes střed monitorované scény 29. křížící každý předmět na stínítku. Pohled shora na umístění těchto předmětů znázorněných na obrázku 8 bude * «* ♦ · ·· ··» •» a « ·# · · · · · «·· *' » · « Λ *«·«··· ·♦· · _ 24 - ♦ · ♦ · · * * ·»« ν· ··· ··» ·· · korelovat s relativní hloubkou zjevnou v rastrovacím řádku 31 představujícím hloubkovou složku na obr. 9 (a).
Vzájemné propojení a činnost zařízení, které může být použito pro přidání hloubky zobrazení videa podle tohoto procesu, je znázorněno na obrázku 9 (b). V tomto obrázku obraz zpracující počítačová pracovní stanice se zabudovaným obrazovým digitizérem 71 řídí vstupní videorekordér 72 a výstupní videorekordér 73 a přepínač 74 obrazových matric, kde řízení je znázorněno čárkovaně na obrázku 9(b), zatímco tok signálu je znázorněn pevnými čarami. Obrazový digitizér přijímá rámec obrazu ve vstupním videorekordéru přes matricový spínač na příkaz z pracovní stanice. Rámec je pak digitalizován a použije se proces definice předmětu popsaný na obr. 9(a) pro výslednou digitální scénu. Když se vypočítá signál hloubky pro tento rámec, tentýž rámec je vložen do obrazového generátoru 75 NTSC spolu s vypočítanou hloubkovou složkou, která je přidána k obrazovému rámci ve správném místě v obrazovém spektru generátorem NTSC. Výsledný hloubkově zakódovaný obrazový rámec je pak zapsán do výstupního videorekordéru 73 a proces začne znova pro následující rámec .
Několik důležitých bodů týkajících se tohoto procesu se objevilo v průběhu jeho vývoje v laboratoři. Prvním takovým bodem je, že poněvadž složka hloubky se přidává generátorem NTSC, který injektuje pouze hloubkovou složku bez změny jakýchkoliv dalších aspektů signálu, může být původní obrazová část signálu zapsána do výstupního videorekordéru bez nutnosti předchozí digitalizace obrazu. Toto pak zabraňuje vizuální degradaci způsobené digitalizací obrazu a jeho kon- 25
444
4 »4 4« 4444
4 44 · 4
4 4 >4 » 4 4 44 4 * • 4 4 4
444 444 44 4 vertováním do analogového tvaru a jedinou takovou degradací ke které dojde bude degradace způsobená dvojím převodem při procesu kopírování video, což je degradace, která je minimalizována použitím vysílacího formátu component video analogových videorekordérů jako jsou přístroje M-ll nebo Betacam. Je zřejmé, jak je dobře známo v průmyslu zobrazování, že při použití zcela digitálních záznamových zařízení, aé už založených na počítači nebo na magnetické pásce, nedojde vůbec k žádné degradaci při převádění obrazu.
Druhým takovým bodem je, že poněvadž proces se uskutečňuje rámec po rámci, jsou pro přidání hloubky požadovány video-rekordéry nebo jiná záznamová zařízení nazývaná rámcově přesná. Editor musí být v případě potřeby schopen na každý individuální rámec dosáhnout a nechat pak zpracovaný rámec zapsat na správné místo na výstupní pásce, a pouze příIf.dy stroje konstruované pro přístup ke každému jednotlivému rámci, například podle Časového kódu SMPTE, jsou vhodné pro takové použití.
Třetím takovým bodem je, že celý proces může být dán pod počítačové řízení a může být proto zpracováván nejpohodlněji z jediného počítačového stojanu spíše než z několika oddělených soustav ovladačů. Vzhledem k dostupnosti videorekordéru s počítačem řízenou úrovní vysílání á dalších záznamových zařízení jak analogových, tak digitálních, určité aspekty procesu přidávání hloubky mohou být poloautomatizovány použitím takových spojení počítače s videorekordérem, jako jsou na čas náročné automatické převíjení a předvíjení.
Čtvrtým takovým bodem je, že softwér může být pro zvýšení kvality přidání hloubky na úrovni mikrorysů vybaven ur- 26 • Φ » I φφ φφ ····
Φ a • ΦΦ čitými aspekty toho, o čem se obecně hovoří jako o umělé inteligenci nebo strojní inteligenci. V laboratoři byla například vyvinuta a je dále zlepšována technika přidávající větší realitu přidání hloubky lidským tvářím za použití topologie lidské tváře, to jest faktu, že nos vyčnívá dále než líce, které se svažují zpět k uším atd., kde každý rys má svou vlastní hloubkovou charakteristiku. Toto usnadní požadavky na mnoho vstupů editora při jednání s mnoha běžnými objekty nacházejícími se ve filmu a na videu, přičemž lidské tváře jsou zde použitým příkladem.
Pátým takovým bodem je, že řídící softwér může být konstruován tak, aby pracoval poloautomatickým způsobem. Tím je míněno to, že pokud předměty ve seéně zůstáváají relativně konstantní, řídicí pracovní stanice může zpracovávat následné rámce automaticky a bez přídavných vstupů od editora, čímž se pomáhá zjednodušení a zrychlení procesu. Proces bude samozřejmě znovu vyžadovat vstup editora, pokud na scénu vstoupí nový objekt nebo pokud se perspektiva scény nadměrně změní. V laboratoři byly vyvinuty a v současné době se vylepšují techniky založené na umělé inteligenci, která auto« maticky vypočítává změny hloubky pro individuální předměty ve scéně, založené na změnách v perspektivě a relativní velikosti objektu na aspekty, které jsou softwéru známy.
Šestým takovým bodem je, že při práci s nehybným nebo pohyblivým filmem jako vstupním a výstupním médiem mohou být vstupní videorekordér 72, výstupní videorekordér 74 a přepínač 74 obrazové matrice případně nahrazeny filmovým scannerem o vysokém rozlišení, číslicovým datovým přepínačem a filmovou tiskárnou a vysokém rozlišení. Zbytek procesu ·· «··· • ·· *· · « ·· ·· · · ♦ • ·· · · · · · • * · * · « · ·#· «
- 97 - · · · · * · · 1 ·· «· «#» ··· ·· « zůstává v podstatě tentýž jako u výše popsané situace zpracování obrazu. Za těchto okolností se vkládání signálu hloubky za použití generátoru NTSC obchází filmovým procesem znázorným na obr. 8.
Sedmým takovým bodem je, že při práci v celodigitálním záznamovém prostředí, jako v ukládání obrazu na bázi počítače, jsou výstupní videorekordér 73. vstupní videorekordér 72 a přepínač 74 obrazové matrice účinně nahrazeny velkou pamětí počítače. Taková velká pamětí je typicky magnetický disk, jak je tomu v editující pracovní stanici na bázi počítače, která se používá v laboratoři, ale stejně tak to může být nějaká jiná forma velké paměti. V tomto celodigitálním prostředí se vkládání signálu hloubky nahrazuje přidáním prvků hloubkové mapy na úrovni obrazových bodů k běžnému formátu obrazu uloženého v počítači.
Jako doplněk A je připojena kopie softwérového programu použitého v laboratorních podmínkách pro dosažení dodatečného přizpůsobení diskutovaného výše s ohledem na obrázky 9 (a) a 9 (b) .
Obrázek 10 znázorňuje aplikaci technik zobrazení hloubky na úrovni obrazového bodu, odvozených v průběhu tohoto vývoje, na trojrozměrné zobrazení tištěných obrazů. Scéna 32 je běžná dvojrozměrná fotografie nebo tištěná scéna. Matrice 33 mikročoček na úrovni obrazového bodu, která je zde pro jasnost znázorněna přehnaně, je přiložena na dvourozměrný obraz tak, že každá mikročočka má odlišnou ohniskovou délku a proto představuje tento obrazový bod na odlišné zdánlivé hloubce pro oko pozorovatele. Při velmi zvětšeném pozorování v průřezu 34 každá mikročočka může být viděna ja28
9 99 9 | • 9· | 9999 | |||
• * 9 | 9 | 99 | • 9 | • 9 | • |
• | 99 | 9 | 9 9 | • | |
• 9 | 9 9 | 9 | 9 | • 99· | 9 |
• 9 | 9 | 9 | 9 | 9 | 9 |
• 9 9 | ·· | • 9 9 | «99 | • 9 | • |
ko tvarově specifická a proto specifická z hlediska optické charakteristiky pro zajištění vhodného příjmu hloubky daného obrazového bodu pozorovatelem. Zatímco v laboratoři byly doposud používány mikročočky s průměry tak malými jako jeden milimetr, byly prováděny pokusy s mikročočkami o rozměrech ve zlomcích milimetru, což dovozuje, že soustavy čoček těchto velikostí jsou zcela možné a že budou mít za následek trojrozměrné tištěné zobrazení s vynikajícím rozlišením.
Při hromadné výrobě se předpokládá, že zde popsané techniky generování signálu hloubky budou použity pro výrobu tištěných matric, z nichž mohou být opět vylisovány do lisovatelného nebo termoplastického materiálu levné soustavy mikročoček pro daný obraz způsobem analogickým lisování data nesoucích ploch kompaktních disků nebo hromadně či opakovaně vyráběných odrazových hologramů, typicky prováděných na kreditních kartách. Takové techniky slibují velkovýrobní levné třírozměrné tištěné zobrazení pro zahrnutí do časopisů, novin a dalších tištěných médií. Zatímco matrice 33 mikročoček je zobrazena v pravoúhlém vzoru, i další vzory jako koncentrické kruhy mikročoček se zdají fungovat docela dobře.
Je důležité poznamenat, že obrazová nebo luminanční nosná v běžném obrazovém signálu NTSC zaujímá značně větší šířku obrazového pásma než barvonosný signál nebo signál hloubky nesoucí pomocné nosné. Luminanční složka obrazu NTSC má relativně vysoké rozlišení a je často charakterizována jako obraz kreslený jemnou tužkou. Barvonosný signál na druhé straně musí přenášet značně méně informací pro vytvoření akceptovatelného barevného obrazu v televizním obrazu a je často charakterizován jako široký štětec malující směs barev ·· • · • 0
0 00
-li1
H»r <ιί
0 0 0*0 · • 0
0* 0 na černobílý obraz o vysokém rozlišení. Signál hloubky v tomto vynálezu je ve svém stylu podobnější signálu barvy ve svém omezeném požadovaném obsahu informací než obrazové nosné s vysokým rozlišením.
Jedním z kritických bodů řízení obrazového signálu je, jak zakódovat do signálu informaci, která nebyla přítomna, když byl konstruován originál, a jak to udělat, aniž by se zmátla nebo jinak učinila zastaralou instalovaná základna televizních přijímačů. Obrázek 11 znázorňuje distribuci energie běžného obrazového signálu NTSC, znázorňující obrazovou nebo jasovou nosnou 36 a nosnou 37 chrominanční nebo barvonosné informace. Všechna informace v obrazovém spektru je nešena energií v oddělených kmitočtových intervalech, zde představovaných oddělenými vertikálními čarami. Zbytek spektra je prázdný a neužívaný. Jak je zřejmé z obrázku 11, tvůrci barevného obrazového signálu NTSC úspěšně zabudovali značné množství přídavné informace, to jest informace o barvě, do zavedené konstrukce signálu použitím téže koncepce koncentrování energie signálu na odlišných kmitočtových bodech a pak prokládáním těchto bodů mezi ustanovenými body energie obrazové nosné tak, že se tyto nepřekrývají a spolu neinterfeřují.
Podobným způsobem tento vynález kóduje další přídavnou informaci ve formě požadovaného signálu hloubky do existující struktury obrazového signálu NTSC za použití téhož prokládaciho procesu, který se používá š barvonosným signálem. Obrázek 12 znázorňuje tento proces tak, že opět ukazuje tutéž nosnou 36 luminance a pomocnou nosnou 37 barvonosného signálu jako na obrázku 11 s přidáním pomocné nosné 38 ···· ·· » « • 9 · • · · • ··· · • ♦ • ·» * hloubky. Pro informaci pomocná nosná barvonosného signálu zaujímá přibližně 1,5 MHz šířky pásma se středem na 3,579 MHz, zatím co pomocná nosná hloubky zaujímá pouze přibližně 0,4 MHz se středem na 2,379 MHz. Takto pomocné nosné barvonosného signálu a signálu hloubky, každá proložená s nosnou luminančního signálu, jsou dostatečně odděleny tak, aby spolu neinterferovaly. Zatímco uvedený kmitočet pomocné nosné a uvedená zaujímaná šířka pásma pracují docela dobře, jsou ve skutečnosti, možné i jiné hodnoty.. Například v pokusech prováděných v laboratoři bylo úspěšně demonstrováno podstatné zmenšení uvedeného pásma 0,4 MHz pro pomocnou nosnou hloubky použitím dobře známých zhušúovacích technik na signál hloubky před jeho vložením do signálu NTSC. Toto je následováno na straně příjmu signálu dekompresí a výběrem před použitím pro řízení hloubku zobrazujícího přístroje. Podobné přístupy pro usazení signálu hloubky do obrazových formátů PAL a SECAM byly rovněž testovány v laboratoři, ačkoliv specifika struktury a příslušné kmitočty se mění vzhledem k měnící se struktuře těchto obrazových signálů. V celodigitálním prostředí, jako v obrazové paměti na bázi počítače·, existuje široké spektrum formátů uchování obrazu a proto způsob přidávání bitů určených pro uložení hloubkové mapy se mění od formátu k formátu.
Obrázek 13 (a) znázorňuje funkční tvar obvodů v běžném televizním přijímači, který typicky řídí vertikální vychýlení rastrovacího elektronového svazku v obrazovce za použití terminologie běžné v televizním průmyslu. Zatímco některé detaily se mohou měnit od druhu ke druhu a od modelu k modelu, podstatné rysy zůstávají stejné.
« ·« * • · ·· · ·· · · · · • · · « ·» ··· ♦ *« ···· • · • · • ·· ·»
V tomto diagramu, představujícím běžný návrh televizního přijímače, je účelem generování rozmítání rastrovacího elektronového svazku, který je konzistentní a synchronizovaný s příchozím obrazovým signálem. Signál je přijímán tunerem 49 a zesílen obrazovým mezi frekvenčním zesilovačem 55, pak odeslán do obrazového detektoru 51 pro výběr obrazového signálu. Výstup obrazového detektoru 51 je zesílen ve výstupním zesilovači 52 detektoru, dále zesílen v prvním obrazovém zesilovači 53 a prochází zpožďovacím vedením 54;
V běžnémobrazovém signálu jsou tři hlavní složky, jasová složka, to jest Černobílá část signálu, barvonosná složka a časovači složka signálu, která se týká zajištění toho, že se všechno stane podle správně načasovaného plánu. Z těchto složek je synchronizační informace oddělena od zesíleného signálu v synchronizačním separátoru 55 a vertikální synchronizační informace je pak invertována ve vertikálním synchronizačním invertoru 56 a přivedena do generátoru 64 vertikálního rozmítání. Výstup tohoto generátoru rozmítání je přiveden do elektromagnetické cívky v obrazovce známé jako vychylovací jho £5. Toto vychylovací jho způsobuje rozmítání elektronového svazku, který sleduje hladkou a přímou dráhu při protínání stínítka obrazovky.
Jak bylo popsáno dříve, v televizní obrazovce pro trojrozměrný obraz jsou do této přímé dráhy elektronového svazku vnášeny malé variace, které prostřednictvím optik na úrovni obrazového bodu vytvářejí trojrozměrný účinek. Obrázek 13 (b) znázorňuje V téže funkční formě přídavné obvody, které musí být přidány k běžné televizi, aby vybraly hloubkovou složku vhodně zakódovaného obrazového signálu a přeložily
- 32 00 0000 ·♦· · • 0
00 0 tuto hloubkovou složku signálu do jemně proměnné dráhy rastrovacího elektronového svazku. V tomto schématu jsou funkce vně přerušované čáry funkcemi běžného televizního přijímače, jak je znázorněn na obrázku 13(a), a ty, které jsou uvnitř této přerušované čáry představují přídavky požadované pro vyjímání hloubkové složky a generování trojrozměrného účinku.
Jak bylo posáno na obr. 12, signál hloubky je zakódován do obrazového signálu NTSC způsobem v podstatě identickým se způsobem zakódování barvonosného signálu, ale prostě na odlišném kmitočtu. Poněvadž kódovací proces je týž, může být signál obsahující hloubkovou složku zesilován na úroveň dostačující pro výběr za použití téhož zesilovače, který se používá v běžném televizním přijímači pro zesilování signálu barvy před jeho výběrem, který je zde označen jako první mezifrekvenční zesilovač 57 barvy.
Tato zesílená hloubková složka signálu se vybírá z obrazového signálu v procesu identickém s procesem používaným pro výběr zakódované barvy v témže signálu. V tomto procesu je referenční signál generován televizním přijímačem na kmitočtu na němž by měl být signál hloubky. Tento signál se porovnává se signálem, který je skutečně přítomen na tomto kmitočtu a jakékoliv rozdíly od referenčího signálu se považují za signál hloubky. Tento referenční signál je generován tvarovaČem 59 hradlového impulsu hloubky a tvarován na požadovanou úroveň omezovačem 58 hradlového impulsu hloubky. Plně vytvořený referenční signál je synchronizován s příchozím zakódovaným signálem hloubky pro tentýž synchronizační separátor 55. používaný pro synchronizaci horizontálního rozmí- 33 ·· ···· • · • · ·· • · · • · · • ·· · · • · • *· · tání elektronového svazku v běžném televizním přijímači.
Když zesílený zakódovaný signál hloubky z prvního mezifrekvenčního zesilovače 57 barvy a referenční signál z omezovače 58 hradlového impulsu hloubky se smísí pro srovnání, jsou výsledky.zesíleny s hradlovým synchronizačním zesilovačem 63 hloubky. Tento zesílený signál bude obsahovat jak složku barvy, tak složku hloubky, takže pouze ty signály, které se nacházejí v okolí kmitočtu 2,379 MHz kódovacího kmitočtu hloubkového signálu, jsou vybrány extraktorem 82.
Toto je pak vybraný signál hloubky, který je následně zesílen na užitečnou hladinu výstupním zesilovačem 61 extraktoru.
Po výběru hloubkové složky z kompozitního obrazového signálu obvod musí modifikovat hladké horizontální rozmítání elektronového svazku přes televizní stínítko pro umožnění zobrazení hloubky ve výsledném obrazu. Pro modifikaci tohoto horizontálního rozmítání, vybraný a zesílený signál hloubky se přidá ve sčítačce 60 hloubky ke standartnímu vertikálnímu synchronizačnímu signálu běžně generovanému v běžném televizním přijímači, jak bylo popsáno dříve na obr. 13(a). Modifikovaný vertikální synchronizační signál, který je výstupem ze sčítačky 60 hloubky, se nyní používá pro vytváření vertikálního rozmítání elektronového svazku v generátoru 84 vertikálního rozmítání, který jako v běžném přijímači řídí vychylovací jho 88, které řídí pohyb rozmítaného elektronového svazku. Konečným výsledkem je rozmítaný elektronový svazek, který je nepatrně vychylován nahoru nebo dolů od své běžné středové čáry pro generování trojrozměrného účinku v obraze nepatrnými změnami vstupního světelného bodu na
00 ' 0 000 ·
I
0« <
<
00
0 0 0 0 0 000 0 0 * 00 0 dříve popsané optiky na úrovni obrazového bodu.
Obrázek 14 znázorňuje elektronické obvody, které představují výhodné příkladné provedení přídavných funkcí popsaných uvnitř obdélníků z přerušované čáry z obr. 13.
Obrázek 15 znázorňuje alternativní prostředky pro změny polohy světla, které vstupuje do jinak vytvořené optické struktury na úrovni obrazového bodu. V této alternativě op* tická struktura 39 na úrovni obrazového bodu má vhodnou funkci, optického přenosu, která zajišťuje ohniskovou délku, která se zvětšuje radiálně směrem ven od osy optického prvku 39 a je symetrická okolo své osy 43. Světlo, kolimované do válcového tvaru, vstupuje do optické . struktury a poloměr válce kolimovaného světla se může měnit od 0 až do efektivního operačního poloměru optické struktury. Jsou znázorněny tři takové možné válcové kolimace 40. 41 a 42, vytvářející z čelního pohledu prstencové vstupní světelné pásy 40a.
41a. případně 42a. z nichž každý vytváří podle specifické optické přenosové funkce zařízení generovaný světelný obrazový bod na různé zdánlivé vzdálenosti od pozorovatele.
Obrázek 16 znázorňuje ve zhuštěné formě pro jasnost výkladu ještě další alternativní prostředek měněni optické vzdálenosti od pozorovatele světla emitovaného z jednotlivého obrazového bodu. V tomto zobrazení je pozorovatelovo oko 4 v odstupu před optikou na úrovni obrazového bodu. Kolimovaný světelný paprsek může dopadat na Šikmo umístěné zrcadlo 7£ v proměnných bodech, z nichž tři jsou znázorněny jako světelné paprsky £ a 7. Zrcadlo 76 odráží vstupní světelný paprsek na šikmý úsek konkávního zrcadla 77, které podle, charakteristik vytváření obrazu konkávního zrcadla dává svě- 35
to ·· | to | ||
• to · | ·· | • to | |
• ·« | • | ||
• to | • · | to | |
• · | • | • | |
«« to· | ·· » | • |
• · to to to to • ·»· to to to to* to
ΙΑ telný paprsek o proměnné vizuální vzdálenosti od pozorovatele £3, £a, 7a odpovídající jednotlivým dříve popsaným a číslovaným umístěním vstupních paprsků. Konkávní zrcadlo může mít zakřivení, které lze popsat jako různé kuželosečky, přičemž v laboratoři se úspěšně používaly jak parabolická, tak hyperbolická a sférická zakřivení. V tomto příkladném provedení experimentální výsledky naznačují, že lze použít jak planární, tak zakřivená zrcadla.
Obrázek 17 znázorňuje, jak v. jednom výhodném provedení uspořádání znázorněného na. obr. 16 kombinace na úrovni obrazového bodu planárního zrcadla 76 a konkávního zrcadla 77 jsou uspořádány proti povrchu obrazovky použité jako osvětlovací zdroj. Ve výkrese konkávní zrcadlo z jednoho obrazo- > vého bodu je kombinováno s planárním zrcadlem ze sousedního obrazového bodu, bezprostředně nad, pro vytvoření kombinovaného prvku 78. který je uložen proti skleněnému čelu £ obrazovky, za nímž jsou běžné fosforové vrstvy £, které září pro vytváření světla, když na ně dopadne emitovaný a kolimovaný svazek elektronů zobrazený v různých polohách tohoto obrázku jako svazky 5b. £12 a 7b. Pro každou z těchto tří příkladných poloh a pro jakoukoli jinou polohu svazku v prostorových mezích optického přístroje na úrovni obrazového bodu světelný bod vstupuje v jedinečném bodě do sestavy a bude proto představován pozorovateli na odpovídajícím jedinečném bodě. Tak jako je tomu u lomových příkladných provedení tohoto vynálezu, je možno docela vhodně použít i jiné světelné zdroje než obrazovky.
' 9
99«
9
9 9 ·
9«
999
9*99
9 *
99* • 9 // 3D01G5.cpp APPENDIXA
II AGENTS OF CHANGE INC.
II. Mraixei Technology 3-D Retrofming Controller Software II Eroploying Touch Šerech Graphical User Interface
II V.01.05
II Indudes the foilowing control elemcnu;
findude <dos.h> | |
#indude <$tdio.h> ftndude <conio.h> | |
findude <gnphics.h> tittdude <$tdlib.h> #tndude <aring.h> íinclude <HKiream.h> ftJefine MOUŠE | 0x33 |
Pdeftne BUT1PRÉSSED | i |
Mefine BUT2PRESSED | .2 |
ídefmeTRÚE | J |
Mefine FALŠE 0 | |
void ActivMouscO |
,í t // aeuvate mouše.
_AX“32: . gemmerntpt(MOUSE);
} int ResetMotiséQ í
II moiise reset.
_AX-0:
gěhimemipt(MO(JŠE);
retům! AX):
í ' .
void ShowMouseÓ ’ { ·. ... .
ti turu on mouše eunor.
_AX»i;
gaiiiutmipt(MOUSE);
} /': ' void HideMouseO
Ί · <
// . turu off mouše eunor.
,ΛΧ-2; ' geniiuerruptíMOUSE);
í raid ReadMousefint *v, int *h. int *but) '{ ' ' ?
int temp; .
_AX-3; ' ; geninterrupt(MOUSE);
il which bunon pressed: 1-left. 2-right. 3-both. lentp-jlX;
btn-temp;
- 37 • 00 «00 0 * 00 « 0 0 • . · ·
0 0 0 0'
00 0000 » 0 0 v 0 0 0 i ϊ .
• 0 0 0
100 000 00 0 // horizontál coordinateš.
•h-_CX:
// věnieat coordinates.
•v- DX;
) dassBunon // tbis cla» croies screen bunons capable of being displayed raiíed // oř depfěeed. Labels displayed on thé buttons change colour when // tbe buoon is depressed.
i ' <' '· ;
public:
ira buttoncerarex. bunon_cenirey, bution_widih. button height: int left.top,right.bottom. texfúze, textjields, ífora; char bunon_textl[40), button_textZ[40]; unsigned upattcrn:
// buttoit_centiex, button_centreý is tbe centre of lbe humra plácement:
II bunon_widih and buttoň_heÍEht are tbe dimensions of tbe button in pixels.
// btmonjext is tbe labei óh tbe button.
// te»_size is tbe text siže for seaextstyle().
int mouseX. mouseY, tnouseBuaon: int oldMouseX. oldMouseÝ; int bunonlDown.buaon2Down:
int pressed:
Buttohfint x. int y. int widtb. int beight. int tfields. dar *btextl. dar *btext2. int tsize, int f) // ibis cónstruaor initializes tbe buoon variables.
buaon^cemrex » x; bwtoo_centrey = y:
bunon_width widtb: .
buttonJteight height:
střepy (buttonjexi 1. btextl);
strtpy(bution_text2. btexi2):
text_sizeUize:
text_fÍeldS(fieId$:
Ifontof;
left=>butwn_centrex - buoon_width/2: ' v iop-button_centřey - button_height/2: 7 11 ‘ rigbi»bution_cenirex + button_widtb/2: . .,, bottom=button_centrey + buttonJieighi/2:
oldMouseX°>0: oldMouseÝ=0; .....
buttonlDown-FALŠE;
buooiúDown-FALŠE; I pressed FALŠE:
) - ;
. voidupO // draws a-raised button and prints tbe required label on it.
( setcoíor(5);
setltnestyleíSOLlD UNE.upattern.NORM WIDTH);
- seďillstyle(SOLID_EILL. LIGHTGRAY);’ bar3d(left,iop,righ?.bouom,0.0);
setcolor(WHITE):
... setlinestyle(SOLID_LINE,upauern,THlCK_WIDTH); __ ·· •
·· ©
© ©· ©· ' ♦ · ♦ © • © « « ©· ·'©··· • *. .· * · © . © © · · • « .
·· · linefleft+2.bottom-l .ieft+2.top+1): linefleft+l,wp+2.rig(it-i .top+2); setcolofl DARKGRAY); sedinejtyle(SÓUD_LINE,upaittrn.NOŘM_WIĎTH): linefleft+4,bonom-3,right-l.bottoin-)); linefleft+3.bottom-2.right-I .bonom-2); linefleft+2.botum-l,righi-i.bonotn-lj; line(righi-3.bonem-1 ,nght-3.top+4);
Iine(nght2.bottom-1 ,nght-2.top+3);
)iné(hghi'l,l»mnn-l.nghi-l.(op+2):
// put the required text in the button. setcolor(5);
settextjustify(CENTER_TEXT. CENTER_TEXT); scttexmyieflfont. HORÍZ_DiR. textjize);
// coul < < bunon_text2 < < endl;
if (text_fields - »1) ounexixy(button_céntrex. bu«on_cenney-4*(floatíbutton_height)/50).
bunonjextl):
'' else ' < ' ounextxy(bunon_centrex. buiton_centrey-13,(flcai(buuon_height)/50) bunonjextl); ~ .
oúnextxy(bunon_centrex.bution_cen[rey+9*(float(butionheight)/50l button text2);
. ) ..
pressed» FALŠE;
votddownO
II draw a depresied button and prutu the required labcl on it.
·. ' í · ’ · setcolor(5):
solineaylefSOLID UNE.upanem.NORM WIDTH); setftilstyle(SOUD_FILL. DARKGRAY): ‘ bar3d(left.top,right.bonom.0.0): ietcolor(5);
setlmestyle(SOUD_LINE.upittem.THICK_ WIDTH): linefteft+2.bottom-1. left+2.iop+1); liitefleft+t.iop+2,right-l.toj>+2):
• jetcolorfUGHTGRAY):
j«Jineítyle(SOUD_LINE.upaitem.NORM_WIDTH);
ltnefleft+4.bottoni-3.right-l.bottom-3):
linefleft+3.bottpm-2.right-l. bonom-2);
linefleft+2.bottdm-l.nghť-l.boaoin-I}; —.....
line(right-3.bonom-l.nght-3.top+4);
line(right-2.bottom-l.right-2,iop+3):
Imefright· 1 .bonom-1 .righl· I .iop+2);
II put the required text in the button.
«tcolortWHITE):
senextjustify(CENTER_TEXT. CENTER_TEXT): settexutyleflfoni. HORĚ DIR. textjize);
II Cúut << buttonjex(2 << endl:
if itext, fieTds 1) ounexayfbutton^ceiitrex. buuon_cemrey4*(float(butunjieighi)/50.}. bunonjextl); .
‘ else outtextxy(button_centrex. bunon_centrey-13*{floaiíbunon_height)/50.), bunonjextl);
outtextxyfbuuon_centrex. buttonjxntrey+9’flloat(buttonjteight)/50.).
button text2):
• ‘ ' í . Λ > '
..-j·.:' i;;·.:7).....íjh-i,· .
,fe.E. jr: 3 jrt :. λ .Utto .ί tfijáiiJ l·.·· ' i·;·.V; v »—·· Ι-,ϊΓχΛ».;.?..^ · ••ftÉjýés 1 Λ-·-.itijs.·».··!·:.$·· . ,·;ίί>. tói /' .í > iíl.íy;,'-. ; í : ', '-iu·' ?)/':/.
·. s SjI. W lííC < <- i —1
.... ..j. m ..., .39' • ·· -· · ·· · · ♦· ♦ ·
99 9 ·'
9 * · * * fc · ' 9 ·
Η* ·· ··· ·· ·· ···· • 1 · • · 9
9 9 · • · • Φ · pressed-TRUE;
. : í ’ ' im toucfaedO // determines whether a bunon has been touched. and retunts H TRUE foryes. and FALŠE for no. Toudiing is emulated H by a mouše dick.
í utt temp» ' _ÁX®3:
genimémipt(MOUSE):
*
II whtdl buttoň pressed; l=left, 2=right, 3=both. temp®JBX:
: mouscBunon<*temp: .
fc
H horizontál coordinates.
mouseX>«_CX:
H vertical coordinates.
mouseY=_DX:
if (mouseBuuon&BUTIPRESSED)
- í , buttonlDown=TRUE: retům 0: ' . .
. . } . else if (buuonlDown)
H ifbutton I wasdownandisnowup. it wasdidted!
í
1! check whether the mouše is positioned in the bunon.
if((((mouseX-left)*(mouseX-right))<0) A& «(mouseY-top)*(mouseYbonom))<Q)) i! if this evaluates as TRUE dtendo the following.
{ · bunon I Dowňs FALŠE: retům I:
} buuonIDown=»FALSE: retům 0:
í .
B’77.·^ . j . .-.7-, / .
r ’ * '· 7 II ΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧ M AIN xxxxxxxxxxxxxxxxxxxxx . void mainO - * . T .{ . ' '··; ' ·. ·;
II this is the systém nuin.
imřage_l_flag. Page_2_flag, Page_3_flag. PagejHlag. Page_5Jtag:
irit Page_6_flag. Page_7_flag.Page_8_flag, Page_9_flag. Page_10_flas:
durwhicb:
II initiatizethe graphics synem.
bit gdriver- DETECT, gmode. eiTprcode:
iniigraph(&gdriver. &gmode. eUborlandcttbgi*):
II read the result of initialixauon.
erroreode - graphrtsultO; _ ·· ftb * »·· ; . - 40 « · b · ·· b · • · · · · # ·
Í· b t ' · • · ·· * · • * · b «** *·* »« <
íf (eironode! - grOk) {// an error occurred.
primfCGraphics error; %s\n*. grapherrormjg(errorcode)); pnrufCPress any key ro tulí;
getehO:
exň(l): ; )
/Zif (ÍRešetMouseO) { ·.?
// primf('No Mouše Driver');
//} ·..
// ser the čurrent coloursand line style,
II set BLACK (normally paíetie 0) to palene 5 (lioraially MAGENTA) II . to correct a colour jerting problém ínate to C++. setpalette(5. BLACK);
II activatie the mouše to emulate a loudi scréen.
S/ActivMouicO;
//ShowMouíeO;
II constróct and initialtze buttons.
Bunon logotgetmaxJi0/2.lOO.26O.13O.l.*(AOCI LOGO)',,4,1);
Bunon auto_oómrol 1(200.400.160,50.2. 'AUTO* .'CONTROL',2. 1);
Button manuat controll(400.400.160.50,2.'MANUAL','CONTROL',2.1),
Buton rautel(568.440.H0.50.1.*MUTE'.,4,l):
//Bunon proceed(getnux*()/2.440.160.50.1,'PROCEED'.'·,4.1);
Buttoncjnston(getoiaxxQ/2.35Ó,450.í00.1.3-bRETHÓ‘.,8,l);
Bunon máia_menu(245.20.460,30,1 .'Μ Α IN Μ E N U.''J, 1);
Bunon iintéjUie2(245.460.460,30.1.'Dáte: Time: Elapscd: V.2,1);
Bunon VKteo_sčrten(245.2Í7.460 J43J \4. t);
Bunon video_ntosagel(245.2l7,160.50,2.’Video Noť.'Deteaeď J.l);
Bunon auto_onofř2(555.20,130.30.2.'AUTO CONTROLYONI OFF'.5.2);
Bunon mantril eontrol2f555.6Ó. 130.30.1.'MANUALCONTROL‘..3.2);
Bunionname čes2(555.100.130.30.1.*OBJECTTAGS'.”.5,2):
Buton voieéjBgú(SŠ3 j40.I30J0J.*TÍUANGULATE/*.*DIST. CALC/JJ);
Bunon cu»omjession2(555.180.130.30,!.'CUSTOM SESS10N'. .3.2):
Bution memory__framnjg2(ÍÍJ120.130.30.1,MEMORY FRAM1NG.'*.5.2);
Buton remote čomnunds2(555,260.130.30.2.'REMOTE ENDS'. “COMMANDS J.2); BuHonavopikms2(555.300.130,30.2.'AUDIO/VISUAL’.OmONS’J,2);Bunoncoďec corarot2(555 340.130,30.1,'CODEC CONTROL'. ”,3.2):
Bunonπκη annrot2(555.380.130.30. l.'MCUCONTROL'.”.5.2):
Buttondial conKXts2(555.420.130.30.2.DIAL-UP','CONNECT10NS'.5,2):
Button tnu«2(5J5.460.130.30.1.'MUTE',”,5,2);
Bunon ind kO (245.20.460.30.1,'PERSONÁL IDENTIFICATION .”.2.1);
Bunon frame čam3(555.20.130.30,1 .FRAME CAMERA.” 5.2);
Bunon cam_presei3(555.60,130.30,1.'CAMERA PŘESET’,”.5.2): *
Bunon auiofollo*3(535.180.130,30. t.AUTOFOLLOWING',''J.2);
Bunon rttum3{555.420.130.30.2.'RETURN TOYLAST MENU* .3.2);
Butun toucb face3(130.418.230.35,2,'DEFINE AN OBJECTYAND THEN TOUCH:'J.2): Bunon type Í<13(308.418.105.35.2.'ACQUIRE'.OBJECT*.5.2);
Bunon wnw id3(423.418.105,35J.'LOSE'.OBJECT'.5J);
Bunon cance)3(333.340.130.30,1,'CANCELCHOtCE'. ^,2);
Bunon keyboard(243.375.450.200.1.'(Keyboard)'..2,1);
Buton writing spKef245,425.45O.]00.I,*(Writing Space).*.2J);
Bunon typing done(355 260.130.30.2. TYTÉ AND THENYPRESS HERE'J.2);
Bunon *πύη8_ύοηε(555.2δ0.130,30.2.·νΚΠΈ AND THEN'.'PRESSHER£'^.2); . Bunon du)_coaxxxsó(ieuniwO/2.20,604,30.l.'DIAL-UP CONNECT1ONS'.”.2,1);
Bunon direcuny6(getniau()/2,6Ó.3OO.3O,1 .'DIRECTORY*. ”.2.1);
Bunon manu*) dialing6(57.420.84.30,2,'MANUAL YDIALING'.3.2);
Buton lineJ6(I51.420,84.30,I.lJŇÉ Γ.*'44): _ ..
** • 1 * > I · ' b ·« · ·· ···
Button line_26(245.420.84,30.1.'UNE 2'.5.2):
Baton dui ione6O39.420.84.30.1.*DlALTOŇE*.”JJ);
Baton tang up6(433.42O.84.3O,I,'HANG UPV.5.2):
Bunon scroU up6(t04,260.l78.30.1/SCROLL ĎIRECTORY UP*..5,2);
Button scroH“down6{292.260.178,30.1.-SCRQLL ĎIRECTORY DOW.**,5 .2); Bunon dial this6(l98.300.84.30.2,'DIAL THISVNUMBER* J .2):
Bunon addeiiny6(J04.340.178.30.1,’AĎD AN ENTRY*, 5.2):
Bunon delete_eniry6(292.340,178,30.1,’DELETE AN ENTRY'..5,2);
Bunon keypad6(5Q5,320.23Ú,151.1,'(Keypad)',**4.1);
Page_l:
// this is tlie opening screen.
// let the curreiii filI style and draw the hadcground. setfillstylc(]NTERLEAVE_FILL,DARKGRAY): bar3d(O.O,geunaxiO.gMmax>O.0.O);
logoatpO;
e_vtsion.up{):
n proceccLupO:
tt auto_controll.up0;
tt manual_coniroll.upO:
mutel.upO;
senexutyle(TRIPLEX FONT. HORIZ DIR. 2); outuxixy(jetmM*OC7l90/(C) 1993-1993 AGENTS OF CHANGÉ INC.*); settextsryle(TRIPIJĚX_FONT. HORIZ_DIR. 4);
oatextxy(getmuj[0/2J35.*WÉLCOME'); oatexuty(gennax)tO/2.265. TO'):
PageJJtog-TRUE:
while(Page 1 flag) {
U temponry keypad substitute for the touch screen.
which » getchQ:
if (which =»=> Ί { ;
íf fic višion.pressed) · < , : ·-.i....:. ; c_vision,down(): gotoPage 2:
··} ·. . - /; ; elsec vision.upO;
, i ··/· '· . ' ' if(whicb»*2‘) 1 < ’ ·' ·· . · i ifdniutel.pressed) mutel.downO: else mutel.upO:
I if(which-*'S’)Pagě 1 flag=«FALSE: >
I <’ goto pgmjerminaie:
Page_2:
// (his is the main menu.
5etfilbtyle(INTERLEAVE_FILL.DARKGRAY);
- 42 »00 0 0 0 004 • * ·· »00 0
00*0 0 0. 0 • 4. 0 • · ?
0 0
000 0 0
000 000 «0 0 bar3d(Ó.0.getniau(}.geiinuyÓ,0,0);
tnain_tmnu.upO;
*idco_ícrtcn.upO; . videpjKssagel.downO;
±ne_date2.upO;
' luiojxtofQ.upO; maroiai_comn)12.up0; rame_tags2.up(}; votce_ugs2up<); custoin_session2.up():
(nenx)ry_franjing2.upO;
remote_conun»nds2.up0;
, iv_optknu2.itpO; axJec_control2.up(); mcu_contn)12.up0; dtal_coniKCti2.upO; muic2.upQ;
Page_2_flag»TRUE;
whilefPage 2 flag) <
H tetnporary keypad substitute tor the touch screen. whidi = getchO:
if (which““')') {
if (!auto onoff2.presscd) í suto onofl2.down();
í else suto onofI2.upO;
tf(whidi-'2·) l
if (!manual_control2.pressed) manual_control2.down(): elsemamial control2,up();
Ϊ ' if fwhich«‘3’) .
í ,· - ' if (!name tags2.pressed) { ' nsmejags2. downO:
. goto Page 3;
} .z ~ - else nanic tags2.upQ:
i ‘ ' if{whttti»»'4') {
iff.voice tagsl.pressed) i
voice_tags2.down0: goto Page 3; .
} else voice tags2.up0:
) :· ·· .
if(wtiich-»'3') {
« · · • aa ♦ Φ · *
V «· • ♦ ♦ » ··· «V • ♦· ·· * I » * · v * a *·« · » a a ·«·. o a if f!cuswm_3e»ion2.presscd) custom_session2.down(J; elsecuítom_session2.up0;
if(which--‘6’) .·<
íf(!memory framing2. přešed) í ' memory_fnming2.down0: goto Page 3;
I else mentory framing2.up0;
1 if (which““'7‘) {
if (!remote_commands2.pressed) remote_commands2.down(): else reraoie corotnartds2.up():
} if (which“’8‘) {
if (!av_options2.pressed> av_options2.down0; elseav optionš2.up0:
} if (which-*»'9') {
if íícodec_control2.pressed) cod«_corarot2.down(): else codec_comroQ.upO;
if (which» «*‘a'} {
if (!tncu_cóntrol2.pre$sed) mcu_comrol2.down(); else mcu comrol2.up0:
í if fwhicha™'b‘) if íldial eormects2.pressed)
Ί dial_conrtects2.dowtt(): goto Page 6;
) else dial_connccts2.upQ;
if (which““'c‘) (
if (!mute2.pressed) mute2.down(); else mute2.up0;
if {wbich*“‘S’) Page 2 flag*FALSE; } goto pgmjermtnate;
Page_3:
II thij is the ftrst 'individual ideniifieation· menu. II and indudes the step into nameags.
- 44 4 44
4 ·
44 • 4 4 4
4 4
4 4 4 *4 44 i ;
4444
4. 4
4 4
44.4 444 44 4 safmaylHINTERI-EAVE_FILLDARKGRAY);
to3d(O.O.gěanauO,ge(RUxyO.Q.O);
ind_«D,opO:
vktoojceen.upj;
vtteojnejuge 1 .downO;
iine_daie2.upÓ;
ftanw_cam3.up0:
catnjmeseb.upO;
tomc_(agi2.up0;
V0ící_ugs2.up();
2Utofollow3.upO;
rénnď.upO;
rauttJ.upO;
+
Page_3_fbg*»TRUE;
whíle (Pxge 3 flag) . .
{ ' // temporary keypad substitute for the touch screen. which - getchO:
if (which· «Τ) if (Iftame cam3.pressed) { “ frame canú.downO;
) else frame_cam3.up0;
if (which· T) {
if (lamjireseú.pressed) cunjireseú.downO; else cam_preset3.upO;
i if (which= ’3') (
if íiname tagsl.pressed) {
. name_tags2.down0: touch_face3.upO; ' typejdivpO;
wnte_id3.up{):
canceTiupO:
lypejor wriťe: which-getchQ;
// the cancel button has been pressed.
. if (which-»'9') goto Page_3;
II type liaméiags. if (which* V) goto Page_4:
H write nametags.
if (which - ‘y') goto Page_5:
góto iype_or write:
else namejagslupO:
if (which••'Ό í
- 45 ·· Β · » ·Β Β Β · *
Β Β· ’ Β .Β Β Β ΒΒ.
Β ΒΒ «
ΒΒ Β • ·' · · Β · . r ·
Β ΒΒΒ
Β Β ♦·Β Β • Β Β
ΒΒΒ. ·ΒΒ Β if (!voice_tag$2. prwsčď) voice_tags2.down(); // gotoPagcJ;
cisc voice ugs2.up0:
} if (whidi“=’3 j .1 ' if (!auiofollow3.presšed) autofollow3.dpwn0: II goto Page_4: / else autofollow3.upQ;
) if (which==-b-) {
if (!re(um3.pressed) reiunú.downO: goto Page 2:
} . else retumLupQ;
if(whičta=='<:')
J if C.nuuel.přesšed) tnute2.down(); else muiel.upO:
. } if (whick—.*S*> Page 3 flag=FALSÉ:
I goto pgmjerminaie;
Page_4:
II ibis is the nameiagstyping page.
setfillstyÍeflNTERLEAVĚ_FILL.DARKGRAY):
bir3d(Q,0.geunajtx(),gettnaj(yO,0,0):
ind_id3.up():
vtdeo_scieen.up(); ' videojnessagel.down():
fmne_cani3.up();
cam_prestt3.i^í):
iunie_iags2.down0; '* voice_tags2.upO: ' autofoliow3.up0; ‘ J . returňj.upó; muie2.up0;
keyboafd.upO: ' typing_done.up{):
Page_4_flag='TRUE:
while (Page 4 flag) { ” // temporarý keypad substitute for the toueh screen. wbich « getctiO: ' if(which=«'7‘) ” .* . í if (!typing_done.pressed) typingjtoiK.downQ; goto Pagě 3:
. }
- 46 0 00 '*· 0 0
000 0 0 0
0 . 0 ·
0· * 00 . · . ·· .0
-00
0
0*0 00 0.
0000 • 0.0 00 0 * ♦ 0
0 else typing_done.iipO:
if (which “-'b') l ' if (iretunú.pressed) retum3.down(); goto Page 3;
else retunú.upO:
if (which—-‘c)
·.· <
if (!mute2.pressed) mute2.down(); else muiel.upO;
if(whicha = 'S') Page 4 flag => FALŠE:
I · '' goto pgmjerniiiúie;
Pagc_5:
H this is the ňametags writing pige.
setfíllstylefINTERLEAVE_niX DARKGRÁY):
bar3d(0,0.getmaxx0.gemuxy0.0.0):
ind_id3.up0;
video_M:reen.upO;
videojnessagei .down();
fnme_cam3.up0:
cam_preset3.up();
naffie_úgs2.down():
voice_tags2.upO:
autofollowJ.upO;
retunú.upO;
mute2.up0;
writing_space.up();
writing_doňe.up0:
Page_5_flag»TRUE:
white (Page 3 flag) í .. ' '
Íí lemponry Iceypad substitute for the touch screen. which - getchO;
if (whidi=“'7')
V. ( if (liypingdoňe.pressed) typingjlone.downO; goto Page 3:
) else typing_done.up();
if (which™ “'b') { ' if (Íretunú.pressed) retunú.down{); goto Page 3;
I else retunú.upO;
- 47 • « · • 9' 9 .. 9 «9 • 99 ·
9*99 ·
9 9 9
999 99 999 «9 9999 • 9 9-9 9
9 9 9 · 99» 9
9 9’
999 99 9 if (whtdi“*'c‘) t
if (!raute2.pressed) muieldownO; else mute2.up0;
} if (which=»»‘S')Page 5 flag=FALSE:
} ” goto pgmtenniiwc;
Page_6:
H lbů ů the connectioiu dialing and directory rnainienance page.
setfillayle(INTÉRIJEAVEJFILL.DARkGRAY):
bar3d(0.0,getnuix0,g«maxy0,0,0);
dial_coimeců6.up0:
directoryó.upO;
keypad6.up0;
scroll_up6.up0;
scroll_down6.up0:
dial_this6.up0:
add_eniry6.upO:
<telete_entry6.upO:
nunual_dialing6.up():
line_l<S.upO;
line_26.up0:
dial_K>ne6.up0;
hang_up6.up{);
retunú.upO;
rauteZ.upO;
Page_6_flag»TRUE;
while (Page 6 flag) {
H temporary keýpad substitute for the touch screettwbich getěhO: ' » if (which=*h‘) ( · if íireiurrú.pressedl _ f
retunú.down0: goto Page 2;
Ϊ . } ' . · else retunú.upO;
if (which-“*c') (
if (!mute2.pressed) mute2.do»n(); eůe inute2.up0;
) if{wbiche«‘$j Page 6 flag^FALSE:
I' . .
goto pgm_termmaté:
pgm_terminate:
g«chQ;
• 00 0
0· · · 0« 0 • 00 0 • · · 0 · • · · 0 « «00 «0 000 0 «· 00«· 0 0 0 0 0 0
00 0 0 0 0
0 // this is tise closing sequence.
ctoegraphQ;
)
• .·· · ·· * · ·· • ·· · • · · # v » · · * ··» «· ··· • (· ···· ·· · . · · • · · • · ··· · · · · ·· ·« ·
/..............A...
/· ARFROCES.H ’/ /· hnage Processing Header Filé ’/ /· Area Processing Functions *1 . l* wrinen in Turbo C 2.0 ·/
/......aa·.·····..··..······.·.··.·..·./ /* Area Procesí Funňion Prototypes */
CompletionCode ConvolutionfBYTE huge 'Inlmage, unsigned Cól. unsigned Row.
unsigned Width. unsigned Height. shon ‘Kemd. unsigned KcrncICols. unsigned KernelRows. unsigned Scale, unsigned Absolute, BYTĚ huge * 'OudnugcBuíPtr):
CompletionCode ReatConvolution(BYTE huge 'Inlmage.
unsigned Col. unsigned Row.
unsigned Width. unsigned Height, double 'Kentel. unsigned KemelCots.
unsigned KernelRows. unsigned Scale.
unsigned Absolute. BYTE huge * OutlmageBufPtr);
CompletionCode MedianFilleríBYTE huge 'Inlmage, unsigned Col. unsigned Row.
unsigned Width. unsigned Height, unsigned NeighborhoodCols. unsigned NeighborhoodRows.
BYTE huge · OutlmageBufPtr):
CompletionCode SobelEdgeDetfBYTE huge 'Inlmage, unsigned Col. unsigned Rdw. unsigned Width. unsigned Height. unsigned Thresbold. unsigned Overlay.
BYTE huge * 'OutlmageBufPtr);
*?i oč.· . í;.·,.
• O«1 ♦:· «íftU • 0f «1«:·. í'
Cl »? ♦· . - .ij c*. i',:· i o
Í-Qiljj ί)Ί'· ♦··).«:: •'•«'J • *1 . «·< «Ρ' »*.· ’’ <1 -i'·' ·'* i i i r,' . »'i * · ·) ’. <· «> ' a* ci /««tmtaiaaaaaatataaaaaaaataaiaaaaáaMaa/ /· je ASPRŮCES.C ·<·- ™ ,-J4-ί .χτ·. .
/* * . Image Processing Code ’/ /• Area Processing Functioas .·/ .
I· ·. , wnnen in TurboC ťó:.
^•••««vviaeaaMaeaAoo^oooovtaa·····*····^ ^ ftnclude <stdio.h> < . >
fmeiude <st(Uib.li > '
Jfaclude <conio.h> fioclude<dos.h> fineíude <aHoc.b>. findude <process.h> findude <matb.b> , fmeiude <graphia.h>
findude (nisc.ft'.. . .
/indude ’pcx.h* findude ‘vga.h findudě imagesup.h* findude 'arproceu.1? ? 1 .
, i ·;.«*'>* : .< Al /* / ·- I' lotegér Convolution Function , _ ....... CompletionCode ConvolutionfBYTE huge •Inlmage. unsigned Col. unsigned Row.
unsigned Wáth, unsigned Height, 1 shon *Kemd. unsigned KentelCols, unsigned KcnidRows. unsigned Scate, unsigned Absotuie, BYTE huge · •OutlnugéBufPtr) register unsigned CoiExtent. RowExient;
ftgisterunsigned InugeCol.lnugeRow. KernCol. KemRow;
unsigned CotOffsct. RowOflset. TempCoI. TempRow;
BYTE huge ‘OupudmageBufřer:
longSuni;
shon‘ΚβπιβΙΡίΓ:
£λ: > t » ' Ki V ' ,·. .· ÍSeít; í .V .. '. ·ν.Λ l* tmage must be at trast the same íae as the tteniel *1 í if {Width > · KemelCoU && Height > » KentéiRows) í 'v./·. .·/.·.
OutputlmageBufíer = (BYTE hiige ·) ? farcatloc(ŘASTERSlZE.(unsigned lohgJsiieoffBYTE));
* ? if (OtnputlmageBuffer » NULL) reštorecriinodeO; ' '' ..
' 5 1.'ν-’,Μί • £>)« retum (ENoMcmpiy); - ΐ^ί*ι^ίί«*?ίτ)9Γ*ν;Λϊτ*ί;:(^;»· , <···· S TsUřU' jfclg díť/a' . , /· Štore address oř output image buffer */ií *
-·, . •OutlmageBufPxr - OutputlmageBuffer.
,· boarder areu not touched by the convolution. lt aUo '/ i. . a ’
- Ji·'.;'* % Si».iy X.·',· •4' v »· ·· · · • ** • * · · • * * ··· ··
V . . . . ...
·· ·· · · · • · » · · * · * ··· · • * . · · »·· .·>* ·· . · provito a nice white framefor the omput image.
·/
ClearlmageAreafOuipiitlmageBuffer.MINCOLNUM.MINROWNUM. . MAXCÓLŠ.MAXROWS. WHITE):
CoIOffset» KernelCoLs/2;
RowOffset » KeroeÍRows/2: t* Compensate for edge éffecu ·/
Col + · CoIOffset; ..
Row + - RowOffsa;
Width -« (KemelCols -1):
Heigbt — (KeraelRows · 1);
/· Calculaie new range of pixets ιο aci upori ·/
ColExtěnt Col + Width;
RowExient = Row + Heigbt;
for (ImagéŘow » Row: ImageRow < RowExient: ImageRow++) (
TempRow á ImageRow · RowOffset:
for (ImageCol » Col; ImageCol < ColExtěnt: ImageCol+ +) ( TempCol =· ImageCol · CoIOffset:
Sum OU
KemdPtr » Kernel;
for (KemCol =» 0; KemCol < KemelCols; KemCol++) for (KemRow = 0; KemRow < KemdRows; KemRow++)
Sum += (GetPixelFromlmageflnlmage,
TempCol+KeroCol. TempRow+KeroRow) * (•KemelPtr+ +));
/· If absolute valíte is requested */ if (Absolulc)
Sum =* labsfSum);
/· Summation perfonned; Scale and range Sum*/
Sum >>-(long) Scale:
Sum - (Sum < MINSAMPLEVAL) ? MINSAMPLEVALSum; ‘
Sum « (Sum > MAXSAMPLĚVAL) ? MAXSAMPLEVAkSuih; ......
PutPixelInImage(Ou(putlmageBufrer.lmageCol.ImageRow.(BYTE)Sum);
J
- J .... . ;
í .
else retum(EKemelSize);
i “ '' retum(NoError);
} /·
Reál Number Convolution Function. This convolution function is onty ušed when the kernel cmries are floating point numbers instead of integers. Because of the floating point óperations envolved, this funaion is substantially slowcr lhán the already slow imeger version above.
·/
CompletionCode RealConvolutionfB YTE huge‘Inlmagc, unsigned Col, unsigned Row, unsigned Width. unsigned Height, double *Kemel. unsigned KemelCols.
·· to • « · ·· * • · · · to ·' · · .to tototo «· ·«· ·· to to « · ·· ··* • to · to ··· to · ·· · · to ·« «·· toto · ttnRgoed KernelRows. unsigned Sole, unsigned Absolute. BYTE hugs · 'OutbnageBufPcr) (
rtgiser unsigned ColEuent. RowExtem;
register unsigned lmageCol, ImageRow. KcmCot. KernRow;
unsigned ColOffiset. RowOffsct. TempCol. TempRow;
BYTE huge •OutpudmagcBuffer;
double Sum: double *KenidPir.
if (PanmeterCheckOK(Col.Řow.CoÍ+Width,Row+Height,’Convoluiion·)) í
/* Image must be u least the ume size as the kcmel *1 if (Widlb > KernelCoIs && Height > - KemelRowj) í /· allocate fař (němoty buřferfor output image */
OutputlmageBuffier (BYTE huge ) farcalloc(RASTERSIZE.(unsÍgned longJsizeoffBYTE)); if (OutputlmageBuffer NTJLL) í
restorecnmoďeO;
príntfCError Not enough memory for cwolution output buffer\n’); retům (ENoMemořy);
} /* Store address of output image buffer ·/ •OutlmageBulPir - OutputlmageBuffier.
Clearing the output buffer to white wilí show the boarder areas nm touehed by the eonvolinion. It also . prevides a niče whňe fiame for the otnput image.
/
CltarlmageÁrea{OutpmimageBuffer.MINCÓLNUM.MlNROWNUM. MAXCO125.MAXROWS,WHITE):
ColOffset “ KemelCols/2:
RowOffset - KemelRows/2:
: / Compcnsate for edge effects ·/ . Col ’+ - ColOf&ec Row+-RowOfbet Widlb- (KernelCoIs· 1):
Height - (KentelRows · l);
/’ Čaloilaie new range of pixels to act upon ·/
CoIExiem - Col + Wtdih:
RowExtem Row + Height;
for (IraageRow - Row; ImageRow < RowExtem: ImageRow++) t
TempRow ImageRow · RowOffset;
for (lmageCol Col: lmageCol < ColExtent: lmageCol++) {
TempCol - lmageCol · ColOffset;
Sum - 6.0:
KemelPtr » Kémel:
for (KernCoI - 0: KeroCol < KemeJCoIs: KemCol++) for (KernRow-0; KernRow < KentelRows; KernRow++)
Sum +»(GeiPixelFromlmageíIiúnuge,
TempCol+KentCoI. TempRow+KernRow) ·
1.
·· ·· 0 0 * 00
0 · 0
0' 0 * ··♦ «V • 0 00 • · *
• 0 •0» 00« ··' ····
0 0 ·*· *·0 ' · * ·
0 (•KentelPtr+ +)):
/· If absolute value isrequešted *f if (Absolute)
Sum ° fabs(Sum);
I* Summation perfórmed. Scate and range Sum ·/
Sum /= (doiiible)(l < <Scate);
Sum - (Sum < MÍNSAMPLEVAL) 7 MINSAMPLEVALtSum;
Sum - (Sum > MAXSAMPLEVAL) 7 MAXSAMPLEVALtSum; PutPixelInlmage(OutpuiInageBuffer.IniageCol.lnugeRow,{BYTE)Sum);
} )
i else retum(EKernelSize);
)
Teuim(NoError);
) /·
Byte compare for use with lite qsort library fanetioh cail in the Medián íílter function.
•Z mt ByteCompare(BYTE *Emryl, BYTE ·Εηπγί) {
if(*Entryl < ·Εηΐτγ2) reúniH):
else if (*Enuyl > *Entry2) rttum(l);
else return(0);
}
CompletionCode MedianFilterfBYTE huge *Inlnugeí unsigned Co), unstgned Row.
unsigned Width. unsigned Height.
unsigned NeighbortwódCols. unsigned NeighborhoodRows.
BYTE huge · *ÓutlmageBufFtr) ( . .. ' '· “ ;·*.
registerunsigned ColExtcnt. RowExiciu; ---register unsigned ImageCol, ImágeRow. NeighborČol. NeighbórRow; unsigned CotOffsa. RowÓffsět, TempCol. TempRow, Pixdlitdex: unsigned TotalPixels. Medianludex;
BYTE huge *OutputbnigeBuffer;
BYTE ‘PixcIVatues;
if (Pa»meteraieckOK(Col.Row.Cot+Width.Row+Height. Medián Filter*)) í . .V' /* Image tmist be at ieast the same size as the neighborhood / if (Width > -NeighboihoodČols &A Height > - NeighborhoodRows) { : ' -
Z* aliocate far memory buífer for muput image *Z .
OutpudnugeBuffer - (BYTE huge ·) hrcalloc(RASTERSIZE.(unjigned long)sizeof(BYTE));
if (OutputlmageBuffer - - NULL) (
- .54 •>f ·:Ι>€ o Ol· o.· .. í; · :í;t : Ofř.iiJ· »?»T
-•i >
r ί·'»;· ΐ'.ίίΐϊ'
Ki íli. ♦*'··>
·: :»>:{ 7 · ’·:« :x ’ restorecnnwdeO: . . .,·.
- -,. ι· - W-r-J· ·: ,r iiour1- -----' · *' ----- 1 retům (ENoMcmory);
>.} > /· Siorc addrcjj of ourput image buffcr ·/ •OttxInugeBuIPtr- OutputlnugeBufíer;
·· V ^’ΐΑ··ίχ<.{ * .· ť t’X«* »--·.« fc- í» ’ •\. ^ Clearing thc output bufíer to white will show the boanter areas rut uniched by the medián filter.lt also provides a nice white frame for the dupot image.
·/ .
...
><:í‘ !.
MAXCOLS.MAXROWS.WHnE):
*· .»* /· Catcuhie bďrder pixel.to misi’/
ColOfíset = NcighborhooďCols/2:
«.j.
RowOfísei ° NeighborhoodRowj/2;
... ” ' ^.t***·* « /* Compenšare for edge cffécts */
Col + - CoIOffcet; ;
Řow + 'b RowOfíset; :
'' Widih *-=· (NeighborhoodCoIs-1);
Height·* (ŇeighborhoódRÓwš · 1);
•/JÍ *.'!.· · · · ' .< .7 ' ' ·* /. . . ‘ .. ,, - -·ψ . I* Caleulate new range of píxets to ια upon ·/ .. ? ’
CoIExient “ Col + Width;
j RowExtcnt Row + Height;
TotalPixels =· (NetghborhoodCols*NetghbortioodRows); Mediantndex “ (NdghborhoodCols*NeighbortioodRow$)/2;
, ··<»»**}»».· tří-t '·ί\· /· illocate mentory for pixel bufíer */ ; λ, fc. u,.
'i:í íic,;PixeJValues = (BYTE .·) cattocfTotalPixels.ftmsignediiiieofíBYtE)):
*ΤριΊΤ·Λί^ ·:►.·· γ··?’ϊ ' .“V.
if (PixelValues = = NULL) / i · ·'··.··' , ' fci·.· > - ί,.Λ *->*·>> '1' *^ajř'··· restorecftmbdetí:
rtmrn fENoMemoryj;
JCj 1 5.-,), ·.
' ÍÁ1* i . y.» ; 1' · .' M./ :,.. ... ·, ’r-^V· V.·7 1 ,· -'ii'· •'.'ίΐΛίΓ.^ νί;;'· i ’»· .*?·(..'' ·/.
»* »íf’.i i-;·. , ·,( £y,
-—''_'~“rgTjr‘”for(ImageRow»-Row;ImageRow<ŘowExtent;lmageRow++) 77 ;J í<Á : . v’·· ,·' ./7/,71 ΐί
TentpRow b ItnageRow- RowOfíset:
for (ImageCot = Čpí: ImageCo) '.< CoIExient: ImageCol++)
y. ' TempČol “ ImageCo) - ColOfíset;
’ί·.'7'·'-· \ PUéílfidM Ol : ~ . 7”.7 ' for(ŇeighborCol 0: NeighbotCol < NeighborhoodCoIs: NeighborCol++) * ~ r ’ ’ for(NeighborRow B O;NeighborRjow < NeighborhoodRows;Neíght)orRow++)
4·'4ř./-e-r -Á*-e...» ' ' ,'*G«PixelFromInuge(Inlnagé.TenipCQl+NeighborCol.
‘ ' ·.. TempRow+NeighborRow);, ,
J*·,,mŮ ?^.TťiřFťS-efltJ. ífcighMč·- ·» ' ·*.· jl·.’ »! · ··??
, and then piek out tbe medián ormiddle vahte as lil 1 dat fárihe pixel.
PŮtPixelInhnagefOuiputlmaseBuffer.lmageCol.ImageRow. . Pixel ValueiJMedianíndexj);
) ·<· ) )
. else returitfEKemelSize);
) .
free(PixelValues); 1* give up ihe pixel value buffer */ renim(NoErior): ' /·
Sobel Edge Deiection Function ;
·/
CompletionCode SobelEdgeDetfBYTE huče •Jnlmage, unsigned Col. unsigned Row, unsigned Width. unsigned Height. unsigned Threshold. unsigned Oyerlaý, BYTE huge * OuilmaeeBufPtr) . .
. regiíter unsigned ColExtent. RowExiem:' regiíter unsigned ImageCoI, ImaeeRow; unsigned PiA, PtB. PtC, PiD, PiĚ. PiF. PtG, PtH. Ptl; unsigned LineAELAyěAbove, LineAEIAveBeíow, LineAEIMaxDif: unsigned LineBEHAveAbove. LineBEHAveBelow, LineBEHMaxDif; unsigned LineCEGAveÁbove. LineCEGAveBelow, LineCEGMaxDif; unsigned LineDEFAveAbove. LineDEFAveBelow. LineDEFMaxDif; unsigned MaxDif;
BYTE huge *OutputImageBuffer:
if (ParameterChecltOKtCol.Row.Col+Widih.Row + Heieht/Sobel Edge Detecior')) í /· allocate far.memory buffer for ouiput image *1 OutpudmageBuffer = (BYTE huge ) .
farcalloc(RA$TERSIZE.(unstgned lorielsizeofíBYTE));
if (OuiputlmaceBuffer = = NULL) í .
reuórecnřnódeO;' printfCError Not enouch memorv for Sobel ouipufbufférin'):
return (ENoMemory): . · .
) . ' ' ' . ' ·
Siore address of ouiput imace buffer ’/ . ' ? ' •OudmageBufPtr - OurputlmageBuffer;
/·
Clearing the output buffer ·/ . ·
ClearlmageÁreatQuipudmageBuffer.MINCOLNUM.MlNROWNŮM,
MAXCOLS.MAXROWS.BLACK);
I /* Compensate for edge effects of 3x3 pixel nešghborhood */ . .
Col += 1:
Row + = 1;
Width -= 2;
Height -= 2;
/· Calculaie new rahge of pixels to aci upon ·/
- 56 CÍ .,OC.
A Cl - ¢1- C .cl . n‘pt c,
-cl o i. o <r ' «ί·'θ) Ct . C;.
(i C’ ίΛ : π i? f* Γ’ C <» i· <ki í? 0 χγ Γ< •n'Cá ..rrC·.
r>c wttf' lil· *cř c« ·<!·' rř t nl r. r. ísiíI cf «3 -. . cl d .
ColExtent = RowExtent
Col + Width: ,
Row + Height;
for (ImageRow = RowfjmageRow < RowĚxtěnc ImageRow++) . for (IníageCol,= Čol; ImageCol < ColExtent: ImagéCol++) , , .‘v ; · .· . J !►'·. - ¢,-..- .· !-, . ,-r * *·+*,. |>| f ‘
I* Gei each pixel in 3*3 neighborhood Ί
PtA=. GetPixelFrpmlmage(InÍmxge.ImagěCol-l.ImageRow-l):
.'PiB “GeiPixetFrómlniagěíInimage.ImageCol .ImageRow-1);
' PtC = GetPixeiFromlnugednJmagě.ímageČol+l JmageRow-l); «;
. PtĎ = GeiPixelFromImágé(InImagé.IniagéCol-l.ImagéŘow );
Pt£ =» GetPixelFromlmage{InÍmage. ImageCol .ImageRow );
* , ,, tPtF = GetPixeíFrbmlmage{Inlmage.ÍmagéCol + l.ImagěRow j;
* PtG = 'GétP»elFrěndjiúi'gé(l>iIn»ge.lflugeCol*].linageRow+l):.
PtH = GeiPixeiFromlmagefjnlmage.IníageCol JmageRow+l);
Pxl = GetPixeíFromlmage(InImage;írnagcČol-t-l.ImageRow+1);
Catculaié average above and below the line.
’ ‘· y. : - . i □ .exu «
Také the absolute value df the differerice.
·/
LineAEIAveBelow = (Pip+PtG+PtH)/3;
LineAEIAveAbove = (P:B + PiČ-^PtF),'3:
LineAEIMaxDÍf = abs(LineAELAveBelow-LineAEÍAveAbove):
LineBEHAvcBelow = (PtA+PtD+PtG)/3:
LineBEHAveAbove = (PtC+PtF+PtD/3:
LineBEHMixDif = abs(LineBEHAyeBelow-LineBÉHAveAbove):
LineCEGAyeBelow = (PtF+PtH+PtB/3;
LtneCEGAveAbove = (PtA + PtB+PtD)/3;
LineCEGMaxDif = abs(LineCEGAyeBelow-LineCEGAveAbove);
.JC . „ r.. C·. Jí .
LineDEFA ve Be|ow = (PtG + PtH+PtI)/3;
LineDÉFAveAbove = (PtA+PtB+PtC)/3:
LineDEFMaxDif = absítineDEFAveBelow-LineDEFAveAbove);
/*
Find the maximum value of the absolute differcncés ťrom the fdur possibilities.
·/ : ;/
MaxDif = MAXÍLineAEIMaxDif.LÍneBEHMaxPfO: <
MaxDif = MAX(LineCÉGMaxDif.MaxDif);
MaxDif = MAX(LineDEFMixDif.Maxpif);' j t
If maximum dtfference ts aboye the thréshoíd.-set the_pixel_of_in[erest feemer pixel) to white. lf / '' y
-below the threshold opiionallvcopy the inputimage- - -.....tó the output image. This.copying is controlled,.by;-T->t. the paraměter Overlay.
./ ·· ' if (MaxDif >= Threshold) ......
PutPixěllhImágé(OutpUt]mageBuffér,ImaeeCóldiriágeRow.WHJTE);
else if (Overlay) . i . ...
PutPixe]SňItnagě(OuiputIřnágěB'uffer.IniágéCql.lna$eRow.PtE);..
retumíNoError);
00 0 00 0 0 00 0 00 0 0 0 0 0 0 0 0.0 .0
000 00 000 ·· »00·
0 0 0 0 • 0 0 0 0 0 000 0 0 0 0
000 00 0 /···.............’...................···/ /· FRPOCES.H 7 /· Image Processing Header Filé *!
/· Fráni: Processing Functions 7 / wrinen in Turbo C 2.0 '1 /·”·'·..........................
/* User defined image combiriaiion type 7 typedef enum (And.Or.Xor,Add.Sub,Mult,Div.Min,Max.Ave,Overlay} BitFunciion:
/· Framé Process Funciion Prototypes ·/ í yoid CombineltnagesfBYTE huge Slmage, unsigned SCol. unsigned SRow. unsigned SWidih. unsigned SHeighi, ti BYTE huge ‘Dlmage, ’ · unsigned DCo!. unsigned DRow, enum BiiFunction CombineType, shon Scale);
• 00 0
0 0 0 0
00 0
0 0 0 0
0 0 0
V 00 00 00 0
- *
0000
0 0 0 0 0 0 0 000 0
0 0
000 ·0. t
/.....v····».............................
/· . FPROCES.C ' ·/ /· Image Processing Code ·/ /· Prime Process Functions Ί !· wrinen in Turbo C 2.0 ·/
......................
#indude < sídio.h > tfindude <stdlib.h> #indude <conio.h> . #indude <dos.h> tfnclude <alioc.h> #indude <process.h> tfindude <graphicš.h> íindude 'misc.h' iTindude pcx.h #indude'yga.h'. tfindude 'imagesup.h* #inctude 'frprocess.h“ /* Single funciion pertdnns all imaee combinaiions */ void CombinelniagesfBÝTE huee *Slmage.
unsigned SCol. unsigned SRow, unsigned SWidlh, unsigned SHeighi,
BYTE huge •Dlmage. unsigned DCol. unsigned DRow, enum BiiFunctiqn CornbineType, shon Scate) í
regisier unsigned SlmageCol, SimageRow, DesiCol:
shon SData, DDau;
unsigned SCotExient, SRowExteni:
if (ParameierCheckOKíSCol.SRow,SCol + SWidlh.SRow+SHeight.'CombincImages') Sl&. ParameierCheckOKíDCot.DRow.DCot + SWidth.DRow + SHeighi. 'Combintlmaecs)) {
SColExiem = SCol+SWidth;
SRowExieni = SRow+SHeighi:
for (SimageRow = SRow; SimageRow < SRowExrenr; ŠImaeeRow + +, í ··· /'Reset the destination Column eount every row ·/
DestCol.»» DCol;
for (SlmageCol = SCol: SlmageCol < SCotExient: SImageCol + +) {
/* Ger a byte of the source and dest imaee data ·/
SData = CetPixeiFromlmagefSImage. SlmageCol. SimageRow);
DDau = GeiPixelFromlmage(Dlmage.DestCol.DRow):
/* Combine source and dest data accordine to parameter ·/ switch(CombineType) í
čase And:
DDau <Sc= SDau: break;
čase Or:
DData | = SData: break:
caseXor:
. DData*= SData:
break;
-, 59 .
. * O,, ,fid , . - O-» 61 n oo . *oc c: · o'c:j>cč < > «<·« »el : '· μ · ρ *· .ot -.či·' ·#· ej-¾ · .*<♦ ·:· 9 ' » - -i o -o» cj i. ci (.'.«βου'-ίι '►.J- ’·*·,Ό O ,,· G+.4* cl '· ·! 0/ T ccgí tg .· tcc frc.o) ec o ί . <* '?-Η*·*. . -tMa f ***+ * «ιΛ »*nr*w:«4qny»*a |Λ' rr“eAdti; . ·· v ' _,.λΛ > caseSub:,,, ^- du -T·» »n >·, ĎĎau ·.= SDaa;,. ,,, break;
čase Muk:
- . ... DDau, * = SDaa;
,/ ./ brcakf ·.
, + ' čase Dtv:
if(SDau!=O)
,..., . DDaa./= SDaa;
·' ' ' -. . · j. · . ·_... *
-fc '. Ά/“*’ ·!*► ,ϊ , · -a>i:ga-cii.-ŽCía.
. ‘ čase Min:.· ., „ . ,. - sM ·, DData = MIN(SDau.DData):
. -break; ,l ..
čase Max: X/-.,' , ?. '. .
.*;* . ,.* .,^,DDau;-..MAX(ŠDaa.bDau);· Λ·,..'’ řťitík. ’»» break;
čase Ave:
. , DData = (SDaa+ DDau)/2; (.u 5 break: .
. čase Overlav:
A·
DData = SDaa:
< '.i?
’.·* break;
í /
i..'. ' 'i;. ;·:'.,; . l£t..... ot *»»\S A'/ -.
Stale the.resulunt daa ifrequested.w. A positive thereby div id ing it by a power of twó. Á leró Scate . yalue leaves the dau untbuched. A negative Scale value shifts the dau left thereby^multiplying it by a power' of two/ *' '· · ' ·, .
i· i· (5cíIc..<£ 0) t. 4^»%* λ· ’ι-κ.λ
..... DDau < < = abs(Scalě):
if/Scale.> 0) . ' ··,'·..·'·'.··
DData >> = Scale: ‘ , ,.,, ..1. , yttjtí*,·,; *. vpv?Μι··,ί', ,·' /’ Don li lét the pixel, data.get out oí rance 7 DData = (DData«.'mINSAMPLEVAL) ?..MINSÁMPLÉVAL:bbau: DData = (DDau > MAXSAMPLEVaL) ? MAXSAMPLEVALiDData: PutPixelÍňÍmaee(blmage.bes'tČdl,+ .+’.DRow,bbaú): -./,
.....7· Bttmp to nexi row inthedestinaiidň imáge '/ . . ......“·’
DRow+ + ;
..'ΛA'-..*' ,, ♦ · /··..................................../ /· GEPROCES.H . . ·/ /* Image Processing Header Filé /.
/· Geometrie Processing Funciions ·/ /* wrinen in Turbo C 2,0 */
y........................................y /· Mise user defmed types ·/ typedef enum {HorizMirror.VenMirror) MinorType;
I* Geometrie processes functionp rototypes */ ·.
void ScalelmagefBYTE huge ‘Inlmage, unsigned SCol. unsigned SRow. unsigned SWidih. unsigned SHeight.. double ScaleH. double SealeV,
BYTE huge ‘Ouilmage, unsigned DCol. unsigned DRow, unsigned lnterpolate); ' void 5izelmage(BYTE huge ‘Inlmage. unsigned SCol. unsigned SRow, unsigned SWjdth. unsigned SHeight,
BYTE huge ‘Ouilmage, unsigned DCol. unsigned DRow. utisigned DWidih. unsigned DHeight, . unsigned lnterpolate);
void RotateImage(BYTE huge ‘Inlmage, unsigned Čol. unsigned Row, unsigned Width, unsigned Height. double Angte, BYTE huge Ouilmage, unsigned lnterpolate);
void TranslatelmagefBYTE huge ‘Inlmage, unsigned SCol. unsigned SŘow, unsigned SWidth. unsigned SHeight,
BYTE huge ‘Ouilmage. unsigned DCol. unsigned DRow, unsigned EraseFlag);
void MirrorlmagefBYTE huge ‘Inlmage, unsigned SCol. unsigned SŘow. unsigned SWidth. unsigned SHeight, : ’ enum MirrorType WhiehMirror, . . BYTE huge. ‘Ouilmage, unsigned DCol. unsigned DRow);
“X «· 0 «0
0*0 · ·
0·0
0 0 * β 0 0 0 '0-0 000 0.
' - 9.0 •99 00 0
/......................................../ /· GEPROCES.C ·/ /· Inuge Processing Code */ /* Geometrie Processing Functions *í
1' wrinen in Turbo C 2.0 */
/...................................»··/ #include <stdio.h> · tfinclude <conio.h>
ffinclude. <dos.h>
Aindude <ailoc.h>
fmclude <procešs.b>
frinclude <tnath.h>
#include <grapbics.h>
tfinclude 'misc-h' íindude pcx.h' finclude vga.h .
íindude 'imagesup.h' void Scaleimage(BYŤE huge *Inlmage, unsigned SCol. unsigned SRow. unsigned SWidth, unsigned SHeight. double ScaleH. double ScaleV.
BYTE huge •Outlmage. unsigned DCol. unsigned DRow, unsigned Interpolate) {
unsigned DestWidth. DestHeight; unsigned PtA, PtB. PtC. PtD. PixelValue;
regisier unsigned SPixelČolNum, SPixelRowNum. DestCol. DestRow;· double SPixelCoIAddr, ŠPixelRowAddr;
double ColDelta. RowDelta;
double ContribFromAandB. ContribFromCandD:
DestWidth = ScáleH * SWidth + 0.5:
DestHeight - ScaleV · SHeight+ 0.5;
if (PararneterCheckOK(SCol.SRow.SCol-+SWidth,SRow+SHeight.'Scalelmaoe') &.& ParametefCheckOK(DCoLDRow.DCot+DestWÍdih.DRow+DcstHeÍBht.'Scalelmaeé·)) {
/’ Calculations from destinanon perspeettve ‘1 for (DestRow = 0: DestRow < DestHeicht; DestRow+ +) { '···.·' '
ŠPixelRowAddr. = DestRow/ScaleV:
SPixelRowNum = (unsigned) ŠPixelRowAddr:
RowDelta = ŠPixelRowAddr - SPixelRowNum;
SPixelRowNum + = SRow;
for (DestCol = 0; DestCol < DestWidth: DestCol + x)
SPixelCoIAddr = DestČol/ScaleH:
SPixelČolNum = (unsigned) SPtxeiColAddr;
ColDelta = ŠPixelColAddr - SPixelČolNum; .
SPixelČolNum+= SCol:
if (Interpolate)
(.
/*
SPixelČolNum and SPixelRowNum now coniain the pixel coordinates of the upper left pixel of the targened pixels (point X) neighborhood. This is point A below;
A B
X
44,4 · ’ 4 9
4 4
4«
99 • · ·
. 4 · • 44 4··
4 4
4 4
4 · cd;
We musí reirieve the.brightness levé I of each óf the four pixels io Calculate the value of the pixel put into thedesttnation image.
Get point A brightness as it will alwayslie within the . . ’ input image area, Check to make sure the other points are within atso. If so use their values for íhe ealculaiions.
lf.not. set them all equal to point A's value. This induces an error but ónly al the cdges on an image.
.·/ '
PtÁ = GetPÍxelFromlmage(lnlmagě.ŠPixelCo)Num.SPixelRowNum); ' .if(((SPixelColNum+l) < MAXC0LS1&& ((SPixelRowNum+lj < MAXROWS)) .-.,- í
PtB = GetPixelFromlmageflnlmageiSPiaelColNum+l.SPixclRowNum):
„/PtC = GetPixelFromlmageíInlmage.SPixelCotNum.SPixelRowNum+.l): ' < -3½
RD = GeďixelFTomÍmage(InImage,SPixelColNum-t· l,SPixelRawŇum+l);
else··-7-.'· {
I* All points háve equal brightness /
PíB = PiC=PlD = PtA; ’ í
f lntěrpolaie to find brightness coniribuiion of each pixel in neíghborhood. Done in both the horizontál and venical directions.
*1 ,
ContribFromAandB = ColDelta’((double)PtB - PtA) + PtA:
ComribFromCandD = Co!Delta*((double)PtD · PiC) + PtČ:
PtxelValue = 0.5 + CóntribFromAandB + (ComribFromCandD - ContribFromAandB)* RowDelta:
) ' ' else
PixelValue=GetPixelFromlmage(Inlmage.SPixelCoÍNum,SPixelRowNum):
/* Put the pixel into the destinaiíon buffer */
PutPixellnlmaceíOutlmaee.DesiCol + ĎČol.DesiRow+DRow.PixelValue);
I
-) ; . > · .· · · · .· , · void SizelmagefBYTE huge •Inlmage. unsiened SCol. unsigneď SRow, unsigned SWidth. unsigned SHeighi,
BYTE hutě Outlmage.
. unsigned DCol. unsigned DRow, unsigneď DWidth. unsigned DHeight. . unsiened Interpolate)
{. , ’ double HScalc, VSeale:
/* Check for paranteters out of range */ if (ParameterČheckOK(SCol.SRow,SCol +SWidth.SRow+SHeighi,'Sizelmage) && ParameierCheekOK(bCol.DRow.DCol+DWidih.DRow+DHeighi,'ŠiieImage·)) t
/·
Calculate horizontál and venical stale factors required to fit specifíed ponion of input image into specified ponion of output image.
’/ '0
0
HScale = (doublie)DWidthZ(double)SWidth:.
VScale = (doubie)DHeightZ(double)SHeighi;
/* Calt Scalelmage to do' the acrual work 7
ScaleImage(Inlmage,SCoÍ.SRow,SWidth.SHeight,HScale.VScale. Óutlmagt ,DCol, DRow. Interpolaie);
.] void RoutelmagefBYTE huge Mnlmage. unsigned Col.unsigned Row.
unsigned Width. unsigned Height, double Angle,
BYTE huge •Outlmage. unsigned Imerpolate) '{ ' regisier unsigned ImageCol. ImageRow;
unsigned CenterCol. CenterRow. SPixelCoIŇum. SPiielRowNum;
unsigned ColÉxtent. RowExtent, PixelValue;
unsigned PtA. PtB, PiC, PtD;
double DPixelRélattveColNum. DPixelRelativeRowNum; double CosAngle. SínAngle, SPixelColAddr. SPixelRowAddr;. double Col Del ta, RowDelta;
double ContribFromAandB, ContribFromCandD:
if (ParameterChečkÓKfCol. Row. Čol + W idth, Row+Height, Rotatelmace))
Z’ Angle musí be in 0.,359.9 7 while (Angle >= 360.0)
Angle ·= 360.0;
/* Conven angle from degrees to radians 7 Angle ·-((double) 3.14159/(doub!e) 180.0);
Z* Calculate angle values for rotation 7 CosAngle = cos(Angle);
ŠinAnglc - sin(Angle):
Z* Center of rotation 7 CenterCol = Col + WidthZ2;
CenterRow = Row + Height/2:
ColÉxtent = Co! + Width; .
RowExtent = Row + Height;
Z·
Al! caiculations are performéd froni the deitination image perspective. Absolute pixel values musí be convened into inches of display distance to keep the aspect vatue correct when image is rotated, After rotation. the calculated display distance is convened bacíc to reál pixel values.
.7 for (imaeeRow = Row; ImaceRow < RowExtent; lmagtRow+ + ) {
DPixelRelativeRowNum = (doubleiimageRow -CenterRow:
Z* Conven row value to display distance from image center 7 DPixelRelativeRowNum · = LRINCHEŠPERPIXELVERT:
for (ImageCol = Co); ImageCol < ColÉxtent; ]mageCol++)
.. {
DPixelRelativeColNum = (doubie)ImageCol · CenterCol:
Z* Conven col value to display distance from image center 7 . DPixelRelativeColNum · = LRJNCHESPERPIXELHORÍZ;
/·
Calculate šource pixel address from desiinition ··· • * · · · I ·· « « »« · · · • · · · · · · • · · « · -*«· ·· ··· ··· ·· · pixels position.
/ .
SPixelColAddr = DPixelRelativeColNum‘CosAngie· DPixelRelaiiveRowNunTSinAngle;
SPixelRowAddr = DPixelRelattveColNunrSinAngle+ DPixelReíativeRowNum*CosAngle;
f .
Conven from coordinaies relative to image center back into absólute coordinaies.
•I /* Converi display distance ιό pixel location ·/
SPixelColAddr ·= LRPDCELSPERIŇCHHORIZ;
SPixelColAddr + =' CcnierČol;
SPixeÍRowAddr *- LRPDCELSPERINCHVERT:
SPixelRowAddr + = ČenterRow;
SPixelColNum = (unsigned) SPixelColAddr;
SPixelRowNum = (unsigned) ŠPixelRowÁdďr;
ColDelia = SPixelColAddr · SPixelColNum:
RowDelu = SPixelRowAddr - SPixelRowNum;
if (lnterpolaie) { '
/.· ;
SPixelColNum and SPixelRowNum now containthe pixel coordinaies of the upper left pixel of the urgened pixefs (point X) neighborhood. This is point A below:
A B
X
C D
We musí retrieve the brightness level of each of the four pixels to calculate the value of the pixel put into the desiination image.
Get point A brightness as it will always lie within the input image area. Check to make sure the other points are wiihin also. If so use their values for the ealculations.
If not. sel them all equal to point A‘s value. This induces an error but only at the edges on an image.
·/ ' ’'
PiA GetPixelFromimage(Inlmage.SPixetColNum.SPixelRowNum): if (((SPixelColNum+1) < MAXCOLS)&& ((SPixelRowNum+ 1) < MAXROWS)) í
PtB = GetPixelFromlmagednlmage.ŠPixelColNum + l.SPixelRowNum);
PtČ = GetPixelFromlmigeOnlmage.SPixelColNum.SPixelRowNum+l);
PtD = GetPixelFromlmacednlmage.SPixelColNum+I.SPixelRowNum+l);
} ' ' . else <
I* All points háve equal brightness ’!
PiB = PiC = PiD = PtA:
) /· lnterpolaie to find brightness contributioň of eáeh pixel in neighborhood. Done in both the horizontál and venical directions. , ' ·/ ’-. · ,
ContribFromAandB = .ColDelta*((doublě)PiB - PiA) + PtA;
ContribFromCandD » ČolDelta*((double)PtD * PtC) + PtC;
PixelValue = 0.5 + ContribFromAandB + --(ContribFromCandD - ConiribFromAandBERowDelta;
-65.0 0.00 · · · • ' 0 · ' 0 0 0 0'· 0*0 » · » 0 .
• 00 000 00 0 ' else f . .
Pixe]Value=GeiPixelFromImage(lnlmage.SPixelColNum.SPixelRowNum);
./* Pul the pixel into the desiination buffer·/
PutPixelInImage(Oudmage,ImageCol,ImágeRow.PixelValue);
) ’ ) ' . ·· ) - } ·. . ' . Z ' ' '· ' ' ' : . , /·
Caution: images musí not overlap;
void TranslaielmagefBYTE huge'Irilmage,.
unsigned SCol, unsigned ŠRow. ' '·*
... unsigned SWidth,. unsigned SHeight,
BYTE huge *Ouilmage, unsigned DCol. unsigned DRow, . . unsigned EraseFlag)
1' .
register unsigned SImageCol, SlmageRów, DestCol; unsigned SColExient, SRowExtem;
/’Check for parameters out of range ·/ .
if{ParimeierCheekOKíSCol,SRo<SCol + SWidih,SRow+SHeighi.‘Translaielmage')&&
: ParameterCheckÓK(DCol.DRow.DCol + ŠWidth,DRow + SHeight,'Translatelmage j) iSCoÍExteni = ŠČol+SWidth; .
SRowExtent “ SRow+.SHeight;
for fSlmágeRoW - ŠRow; SImageRow < SRowExtem: SlmageRow + +) , ' f . ' ? ' .. . :;'· /· Reset the desiination Column count every row ·/
DestCol = DCol: ' for (SImageCol = SCol: SImageCol < SColExtent: SlmageCol+ + )
í. ' ‘ -1' - '·:
/· Transfer byte of the image data between buffers ·/
PiitPixělInlmágeíOuiImage. DestCol+ +.ĎRow, 'f - íí'·· i7,r- GetPixelFfdmlfnage(InImage,SlmageCol.SJniageRow)): .
f .Bump to next row in the desiination image *1 . DRow+ + ; ' ' ' . ' . /· Iferasurě specified. blot out originál image ·/ if (EraseFlag) ' ClearlmageAreaílnlmage.SCol.SRow,SWidth.SHeight.BLACK):
void MirřorlmagefBYTE huge •ínlmage, unsigned SCol. unsigned SRow, unsigned· SWidth. unsigned SHeight,
... eňum MirrořType WhichMirror. BYTE huge •Oudmage, unsigned DCol, unsigned DRow) {·. 1 register unsigned SImageCol. SImageRow. DestCol: unsigned SColExtent. SRowExtem;
/* Check for parameiers out of range '1 if <ParameterCheckOK(SCol.SRów.SCol+ŠWjdto.SRow+SHeÍght.-MinorImage') &&
'·- .66 • ·'
Φ·
φφ · φ φ · ·'* ·» * · .· ·
9 9 9 · · · · ΦΦ· · • · « · · · ' · 9 9 ··· 99 ··· ·♦· Φ« ·
ParameteřCheckOKfDCol.DRow.DCol+SWidth.DRow + SHeighl/Mirrorlmage·)).
( · ~ . .’,· ~ SColExtent = SCol+SWidih: ,·
SRowExtent. = SRow+SHeight;
switch(WhÍchMinor) { .
čase HorizMirror’.
for (SImageRow = SRow; SImageRow < SRowExtent; ŠImageRów+ + ) . . í . .< ' ! /· Resel thé desiinatíon Čolumn count every row ·/
DestCol = DCol + SWidth:
for (SÍmageCol = SCol: SlmageCol < SColExtent; SImageCol++) { ' Z· i* Transfer byte of the image data beiween buffers i PuiPixellnlinagetOuilmage.-DesiCol.DRow.
GeiPixetFromlmagednlmage.SlmageCol.SImageRow));
< l ' - -i !* Bump tó nexi row in the destínation image,’/
DRow + + ;
break: i čase Ven.Mirror:
' DRow>· (SHeight-l); ' for (SImageRow = SRow; SImageRow < SRowExteni: SImaeeRow+ + ) , i . ' - , ..
/’Reset the destínation Čolumn count every row ·/
DestCol = DCol; ' .
for (SImageCoí = SCol; SImageCol < SColExteni: SImagcCol + + ) ' ' < ? /· Transfer byte of the image data beiween buffers *t PútPixelInImage(OuiÍmage.DesiCol-ř+,DRow,
GetPixelFromlmageUnJmage.SlmaeeCol.SImaeeRow)):
í . .. · /· Bump tó next row in the destínation image ·/ . . . . DRo*-t: ..·.
) . : ' break; .· ’ :
• J· ' ./ .
·. . . ' ' , . . · :... :
«· *♦* • · · · • · ·· ·
.......................
/· . fMAGESUP.H ·/ '
I* Image Processing Header Filé Ί I* Image Processing Šuppon Functions ·/ /* wrinen in Turbo C 2.0 ... ·/ /·.···«····*·····-··»··.·.-.··············.··/ /· .
This filé indudes lbe generál equaies ušed for all of lbe image Processing code in pari iwo of this book. Throughoui these equaies, a 320x200 256 čolor image is assumed. If the resolution of the. processed pictures change. the equaies MAXCOLS and MAXRO.WS mustchange accordíngly,· /· Pixel Sample Information and Equaies ·/ '/defme MAXSAMPLEBIŤS 6 I* 6 bits from digitiier ·/ /define MINSAMPLEVAL .0 ' /* Min saniple value “ Ó *1 .
I* Max rium of sample values */
Mefine MAXQUANTLEVELS (I <. <MAXSAMPLEBÍŤS) ; /• Max sample valut.·» 63’/
Adefme MAX SAMPLE VAL' (MAXQUANTLEVELS-1)
I* Image Resolution Equaies */ ídefine MINCOLNUM, Ó ; / Column 0 ·/ .
..řdefinc MAXCOLS LRMAXCOLS /' 320.lotal columns */ Mefme MAXCOLNUM (MAXCOLS-1)·/* Last column is 319 ·/,· /defme M1NR0WNUM 0- /•Row O’/ /defme MAXROWS LRMAXROWS /· 200 total rows. ·/ /define MAXROWNUM (MAXROWS-1) /· Last row is 199·/ #defineRASŤERS1ZE ({IpnglMAXCOLS · MAXROWS)
Meřine MAXNUMGRAÝCOLORS MAXQUANTLEVELS /· histogram esliiiéí··'/··*·' /KdefmeHiSTOCOL 0 i tfdefine H1STORQW 0 ' í /defme HISTOWIDTH 134' .
Meftne HISTOHEIGHT 84 #define BLACK #defiňe WHITE
0.
#define AXISCOL ' íKJSTOCOL + 3) . :.
Meftne AXISROW (HÍSTOROW+HISTOHEIGHT-5) . . ďdefme AXÍSLENGTH MAXQUANTLEVELS’2-1 #def:ne DATACOL AXISCOL .
Meftne DATAROW AX1SROWU ’ «defme MAXDEFLECTION (HISTOHE1GHT-10) /· External.Funetion Declaraiions and Protoiypes Ί void CopylmagefBYTE huge •SoureeBuf.BYTE huge ·Οβ$ιΒυΟ:
BYTE GetPixelFromlmagefBYTE huge *Image. unsigned Col. unsigned Row);
CompietionCode PuiPixelInJmagefBYTE huge *lmage. unsigned Col, unsigned.Row. unsigned Color);
'.Z. ' .5 . ·» > í' ' ; J ' CompietionCode'· DráwHLine(BYTE Huče •Image, unsigned Col, unsigned Row, .'· > 1 unsigned Length, unsigned Cplor):
• to to to • · to • to to ··· ·· • to ·' to to ··· ·«« • to •to »··· to· · » · · • •to · • to to* ·
CompletionCode DrawVLinefBYTE huge 'Image. unsigned Col. unsigned Row.
unsigned Length, unsigned Color):
void ReadlmageÁreaToBuf (BYTE huge 'Image. unsigned Col. unsigned Row, unsigned Width, unsigned Heighi.
BYTE huge 'Buffer);
void WritelmageAreaFromBuf (BYTE huge 'Buffer, unsigned BufWidih.
unsigned BuťHeight, BYTE huge'Image, unsigned lmageCol, unsigned ImageRow);
void ClearImageArea(BYTE huge 'Image,unsigned Col. unsigned Row, unsigned Widih, unsigned Height, unsigned PixelValue);
CompletionCode ParameterCheckOKíunsigned Col. unsigned Row, unsigned ColExtent. unsigned RowExtem, char 'ErrorStr);
iv u:.·
- 69 .φφ' • φ · • * φ φ Φ· φφ φφ φφφφ φ- .φ · φ φ φφφ • φ φ φφφφ φ φ φ ·
Φφφφφφ φφ φ
/.....’·..............
Ι· IMAGĚSUP.C ·/
I* Image Processing Suppon Functions ’Ι I* wrineh in Turbo C 2.0 ·/ .
Wnclude <stdio.h>
findude <procesi.h> ' ' ' r;··
Yindude <cpnio;b> ' ' ' - tfindude <dos.h>
ťindude <alioc.h >
#incltide <mem.h> .
.findude <graphics.h>
findude 'misc.h· .
fiftdude‘pcx.h* . < ·.··.· C-tít ·. . . findude 'vga.h' ·.·<!
#inc!ude 'imagesup.h' | .· ' . I .. ' extern strun PCX_Fiie PČXData; extern unsigned lmageWidth; extern unsigned lmageHeighi;
/·
Image Processing Suppon Functions - See text for details.
Ί
Ί·
Copy a complete image from source buffer to destination buffer ·/ void CopylmagefBYTE huge ‘SourceBuf. BYTE bujte ‘DestBuf) { movedaia(FP_SEG{SourcéBuf).FP_QFFí$ourceBuf),
FP_SEG(DesiBuf).FP_OFF(DestBuf).
(unsignetíl RASTERS12E):
)
ΝΟΤΕ: to index into the image memory líke an array. the'index value musí be a long variable type. NOT just cast to long.
·/ ' .
BYTE GetPixelFromImáge(BYTE huge ‘Image. unsigned Col. unsigned Row) unsigned long PixelBufOffset/ ' . íf((Col < imageWidth) &<Sc (Row < lrnaeeHeight)) { . ' . · . ' , .
PixelBufOffset -Row: /‘doně toprevent overflow ·/
PixelBufOffset ·-lmageWidth:
PixelBufOffset ·+ = Col; retum{lmage[PixelBufOffset]);
) . _ ....·.
prinif(‘GetPixelFrórňlmage Error; Coordinate out oť rangein4); priniff' Col » %d Row = %d\n*.CoÍ.Řow);
. reium(FALSE);
} λ ' · ;
CompietionCode PuiPixelliilmage(BYT£ huee. ‘Image. unsigned Col, unsigned Row, unsigned Color) { .
00 · 0 0
0 · · .
000 ** • 0 0 0 • 0 • 0
000 000
0000 • '0 0 0 0 ·
000 0 0 0
0 0 unsigned long
FixclBufOřfsct:
if({Col < ImagéWidtW && (Row < JmaeeHeight)) i :.
PixelBufOffsei = Row; /' doně to preveni overflow Ί PixelBufOffsei ·= lmageWidth;
PixelBufOffsei + «. Col; lmagěfPixelBufOffset) = Color: . retum(TRUE);
S 'else { · . ' ' ' ·' ' printf(’PutPixellnlmage Error: Coordinaie out of range\n);
,í printfC Col .“· %d Row é %d\n'.Cól'.Row);
. retum(FALSÉ);
} ' > , .,· z·
ΝΟΤΕ: A length of 0 is one pixel on. A length of I is two pixels on. That is why length is ihcremented before being ušed.
«/ ' ' '
CompletionCode DfawHLinefBYTE huge‘Image, unsigned Col. unsigned Row.
unsigned Length, unsigned Color) { ·' if {(Col < ImageWidih) && ((Cpl+Length) < = ImageWidth) &&
(Row < ImagtHeight)) {
Length+ + : whiIe(Length-)
PutPixellnImagé(Jmage,Col+ +.Row,Color); return(TRUE);
else '
í. ., :.λ< ! . printfCDrawHLine Error: Coordinaie dul of rangefn'); printfC Col “ %d>Row β %d Lehgth.“ Yíd\n',Col.Row,Length);
retumíFALSE):
. ) . . · ' í ' ' .· ' »4,.
CompletionCode DrawVLineíBÝTE huge ‘Image. unsigned Col. unsigned Row, unsigned.Length. unsigned Color) ' 1 . ' , ‘ ·' ' if ((Row < ImageHeight) && ((Row+Length) < = ImageHeight) (Col < IraageWidth)) {
Length--r; while(Length-)
PutPixelInImage(lmage, Co). Row++, Color,: retumťTRUE):
) ' . ' · else printf(’DrawVLítie Errqr: Coordinaie oui of range\n’);
priniff Col “ %d Row “ %d Length ·' %d\n.Col,Row.Length); , retum(FALSĚ); ' }
'i ' . .
void ReadlmageAreaTpBuf (BYTE huge *lmage. unsigned Cd), unsigned Row.
«· 0··0
4 0» • 0 ·· ·
• 0 • · • 00 0 0 ·
Φ · · • · ' · . 0.
• 0 0 0 • 0 .
• 0 · unsigned Width, unsigned Heighi, BYTE huge *Buffer) . { ·,.
unsigned long PixelBufOffset = OL; regisier unsigned ImageCol, ImageRow;
for (ImageRow = Row: ImageRow < Row + Height; lmagcRo.w++) for (ImageCol-CoL.lmageCol < Col+Width: ImageCol+.-t·}
Buffer[PixélBufOffsei++J =
GetPixelFrómlmage(lmage.IjnageCol.lmageRow);
1' ' · '· ' ; ···'·. ·.' · .
void WritelmageAruFrotnBuf (BYTE huge.*Buffer. unsigned BufWidth, .
. unsigned BuíHeighť. BYTE huge •lmage, unsigned ImageCol. unsigned ImageRow) l· . ' ' . ; , ' unsigned long PixelBufOffset: , -j,, , ř· regisier unsigned BufCol. BufRow. CurrentlmageCol; for (BufRow = 0: BufRow'.< BuíHeiglit; BufRow + + ) í '·
CurrentlmageCol = ImageCol; .
for (BufCol = 0: BufCol < BufWidth: BufCol+ + ) ( ..i...···· ; ·.
. PixelBufOffset = (unsigned long)BufRow*BufWidth+BufCol;
PúiPixelInImage(!magt,CurrentlmageCol.lmageRów,Buffer(PixelBufOffsei)); CurrentlmageCoi + + ;
) ·. ' . . ·. · ‘
ImageRow + +;
.} . /:- '. <
void Clear.lmageAreáfBYTE huge *Image.unsigned Col. unsigned Row.
unsigned Width. unsigned Height.
unsigned PixelValue) < . ' : ' > .' ' .
regisier unsigned BufCol, BufRow.
for (BufRow = .0: BufRow·< Heighť: BufRow + + ) for (BufCol » 0: BufCol < Width: BufCol+ + ) .
PuiPixennlmaeéflmage.BufCol + Col.BufRnw + Row.PixelValue);
} . ;· : \ · . ·;. ,
This functioh chtcks to make sure thě parameters passed to íhe image processing functions are all within řange, lf so a -TRUE is retumed. lf not. an error message is output and thc calling program is terminated. '.i·.··..'· ·/ . ' ·, . /
CompletionCode ParameierCheckOKfuníigned.Col, unsigned Row, unsigned ColExtent. unsigned RowExtent.
char FunciiOnName) í . , i ;
if ((Col > MAXCOLNUM) j |. (Row > MAXROWNUM) 11.
(ColExient > MAXCOLS) |.| (RowExtent > MAXROWS)) '· .
restorecnmodef);
prtntf(Param«er(s) out ďf rangé tn funCtión; %s\n’.FunctionNime);
.. prihtfC Col «%d Row = %d ColExtent = %d RowExtent a %d)n'.
Col. Row. ColExtent. RowExtent):
•0 0 0 0
00 • 0 0 0 • · 0
000 00' 0 '· 00 0000 •• 0 0 0 • 0 0*, · 000 0 ‘ · 0 -0
000 00 0 exiiíEBadParms);
) '..···· retumíTRUE);
•«5 ·* · • '· /·.......................................
' '/· PTPROCES.H ·/
Image.Processing Header Filé ..*/ : /· Point Processing Functions ' /· wrinen ih Turbo C 2.0 */
.....
extern unsigned Histogram[MAXQUANTLEVELS);
Funciion Protorypes for suppon and histogram functions ·/ void lr.itialitcLUŤ(BYTE‘EookUpTable);
void PtTfansfórmfBYTE huge NmageData, unsigned Col, unsigned Řow, unsigned Width, unsigned Height. BYTE'LookUpŤable);
. void CenHistogramfBYTE huge ·Ιίή8Ββϋ3ϋ. unsigned CoL unsigned Row, unsigned Width.
. . unsigned Height);
void DisplayHistfBYtE huge •ÍmageĎata.unsigned Col, unsigned Řow. unsigned Width, unsigned Height); .
Point transform functions *1 void AdjlmageBrightnessfBYTE huge *ImageData. short BrighinessFacior.
unsigned Col. unsigned Row, unsigned Width, unsigned Height);
void NegatelmagefBÝTE huge ‘ImageData. unsigned Threshold. unsigned Col. unsigned Row.
. unsigned.Width. unsigned Height):
void ThresholdímagefBYTE huge ‘ImageData. unsigned Threshold, unsigned Col. unsigned Řow.' unsigned Width. unsigned Height):
void StretchlmageConirastíBYTE huge *lmageData, unsigned ·Ηί5ΐοϋ3ΐ3. unsigned. Threshold. unsigned Col. unsigned Row, unsigned Width, unsigned Height): J
i.· I • ·· '·*· /· PTPROCES.C ·/
I* Image Processing Code ·/ /· Point Proces Functions; |··'.
/·. writien in Turbo.C 2.0 Ί
Z.......................................·/..
tfinclude <stdto.h>
. tfindudc <stdlib.h>
jí #indude <cónío.h> #indude <dos.h> #indude <alloc.h.> tfindude <přocesš.h> ftndude <graphics.h> tfíndude 'řnisc.h’ tfíndude 'pcx.h' #índude 'vga.h' #indude'imagesup-h' /* Histogram storage location ’/ unsigned Histogram[MAXQUANTLEVELS];
./·'.·
Loolt Up Table (LUT) Functions
Initialize lbe Look Up Table (LUT) for straight through mapping, If a point transform is performed on án initialized LUT. output data witl equal inputdata. This function is usually called in preparatíon for modification to a LUT.
void InitializeLUTfBYTE 'LookUpTable) { ' ·· : register unsigned Index; .
forflndex »0: Index < MAXQUANTLEVELS: Index++) LookUpTable(Index) “ Index; .
/*
This function performs a point transform oň the ponion of the image specifitd by Col. Row. Width and Height. The actual transform is contained in the Look Up Table who address is passed as a parameter.
•Z void PiTransformfBYTE huge 'ImageData. unsigned Col, unsigned Row.
unsigned. Width, unsigned Height, BYTE'LbokUpTable) register unsigned lmageCol. ImageRow;. register unsigned ColExtent, RowExtem;
ColExtent = Col+Width;
- 75 A'· · · • ·♦ « . · « · · ·«· ··
RowExient = Row+He>ghi;
if (ParameierCheckOK(Col.RowtCol£xieni.RowExitnt,’PiTfajufonn’)) for (ImageRow® Rdw; ImageRow < RówExtent; lmageRow++) for (ImagcCol=Cok:ImageCol < ColExtěnt; lmageCol ++) . PutPixelInlmagedniageData.ImageCol.ImageRow, , . ' LookUpTable[GetPixdFromlmage(ImageDau.ImageCol.ImageRow)J);
- } . ' . ' ' ii /* start of histogram functioiis !This function calculates the histogram of any ponion of an image.
void GenHistogramfBYTE huge 'ImageData. unsigned Col. unsigned Row, unsigned Width. unsigned Height) { : . . ' ' . , registér unsigned ImageRow, ImageCol. RowExient. ColExtěnt; . regisier unsigned Index: .* .· /· dear the histogram array ·Ζ .
' .fór (Index-Ot. Index < MAXQUANTLEVELS; Index,+ +)'
Histograni(Index] » 0:.
' RowExteni = Row+Height; , í
ColExtěnt - Col+Width; i if (ParameterCheckOK{Col.Row.CoÍExieni.RowÉxtent.'GenHistogram’))
J ' , ' ·<'' '
I* calculaie the histogram ·/:for (ImageRow => Row; ImageRow < RowExient: !mageRow++) for (ImageCol = Col; ImageCol < ColExtěnt: ImageCol + +) : .;Histogram(GetPixelFromÍmage(ImaseDaia.ÍmageCol.ImageRow)).+= 1;:, > ' '.,.'··'·.
, ·. í ' ' '
This function calculates and displays the histogram otan image or paniai image. When called.it assumes the VGA is.already in móde 13 hcx.
•i .
, void DispláyHist(BYTE huge *[magěĎaia.. unsigned Coh unsigned Row,
.....unsigned Widei. unsigned Height) {’ - < '
BYTE.huge‘Buffer;
regisier,unsigned Index. LineLength. XPos, YPos: ' ’ unsigned MaxRepeat:
Z* Allocate enough memory to savé image under histogram *(
Buffer » (BYTE huge ·) farcalloc((long)HlSTOWIDTH‘HI5TOHEIGHT.šiieof(BYTE)):
• if (Buffer »= ŇULL) { ' . · ' ' '· . prinif(*No buffer memory\n); exitfENoMemory);
J ·' \. ' . ' . ; . 7 /· Savé a copy of the image ·/ . ReadlmageAreáToBufdmagebau.HlSTOCOL.HISTOROW.HlSTOWIDtH.HISTOHEIGHT.
' Buffer);υ< ' '
• « z?1 /·
Set VGA color regisier 6S 10 red. 66 to greeri and 67 to blue so the histogram can be visuaily separated from i the eontinuous tone image.
SetACo!orReg(65.63,0,0);
SetAColorRťg(66,0.63.0);
SeiAColorReg(57,0,0.63);
/* Calculáte thé.histogram fór the image 7
GenHistogramdmageData, Col. Row, Wtdth. Height): M.axRepeať- 0;
'. ' I /·
Find the pixel.valué repeated the most. It will be ušed for. scaling.
*1 foť (Index =»0: Index < MAXQUANTLEVÉLS:lndex+ + ) MaxRepeat = (Histogram!Index| > MaxRepeat) ?
Histogram[Index]:MaxRtpéat:
/· Fill background area of hisiogram graph 7,
CléarImageArei(lmageDau.HISTOCOL.HlSTORO.W.HlSTÓWlDTH.HlSTOHEICHŤ,67);
/* Dráw the boundíng.bóx.forthe hisiogram 7
DrawVLineGmageDau.HIST.OCOL.HiSTOROW.HISTOHEIGHT-l.BLACK):
, DrawVLinerimageData.HlSTÓCOL+HISTOWIDTH-I.HISTOROW.HISTOHEIGHT-i.BLACK); DrawHLine(ímagebata,HlSTÓCOL.HISTOROW+HISTOHElGHT-l.H!ST.OWIDTH-l,BLACK). DrawHLine(lrr,ageData.HIST0C0L.HJST0R0W,HIST0WIDTH-l.3LACK):
/ Data base line 7 ; brawHLineGmageDau.AXISCOL.AXiSROW.AXlSLENGTH.WHITEi: DrawHLinerimageData.AXISCOL.AXISROW + I.AXlSLENGTH.WHlTE):
/· ' '
Now do the actuat histogram rendering into the image buffer.
for (lndex^O: Index < MAXQUANTLEVELS: Jndex++)
LineLength = (uniigned)(((long) Histogram!Index) .· MAXDEFLECTION) / (long) MaxRepeat);
XPos = DATACOL + Index·:: 1'
YPos- DATAROW. LineLength: braw.VLine(ÍmateDaia,XPos.ÝPos.LineLength.66);
í ; ' . ... ’ ' J z*·
Display the image bverlayed with th^ histogram . DisplaylmagtInBuf<lmageData.NOVGAINIT,WAÍTFORKEY)·.
/' Aftěr display: restore image dau urider histogram 7 . Wri«lmagéAreaFrómBuf{Buffér,HISfOWIDTHiHIŠTOHEIGHT.ImageDaia.
- ‘ HISTOCOL.H1STOROW); .
farfreé{(BYTE far *)Buffer);
- .77 «0 · · • ·· • · 0 • · . · · · · • 0 » 00 0 ·
0
0« · /· Various Point Transformation Functions 7 . .
I void AdjlmageBnghtnessfBYTE huge‘ImageData. shon BrightnessFactor.
unsigned Col. unsigned Row.
unsigned Width. unsigned Height) . ’ .
·{ : -.
regisier unsigned Index;' j regisier short NewLevel;
BYTE . LookUpTable[MAXQUANTLEVEL£];
for (Index = MINSAMPLEVAL: Index < MAXQUANTLEVELS; lndex ++)
NewLevel = Index + BrightnessFactor:
NewLevel - (NewLevel < MINSAMPLEVAL) ? MlNSAMPLEVAJLtNewLevel;.
NewLevel = (NewLevel > MAXSAMPLEVÁL) ? MAXSAMPLEVALtNewLevel; . LookUpTable(Index) = NewLevel;
' ) /.· . .. . , .
PtTransformdmageData.Col.Row.Widih.Heighi.LookUpTable);
) ' ' í
. This funčtion will negaie an image pixel by pixel. Threshold is the value of image data where the negatation begins, If threshold. is 0. all pixel values are negated, Thal is, pixel value 0 becomes 63 and pixel value 63, becomes ,0. If threshold is greater than 0. the pixel values in the rangeO..Threshold-1 are left alone while pixel values between Threshold..63 are negated,.
void NegatelmagefBYTE huge ·Ιηΐ36εθ3ΐ3, unsigned Threshold. unsigned.Col. unsigned Row.
unsigned Width. unsigned Height) { . '. ' regisier unsigned Index: .
BYTE LookUpTable. MA.XQUANTLEVELS);
/* Svaight through mapping initially 7 ‘
InitialiieLUT(LookUpTable);
/· from Threshold onward. negaie entry in LUT 7 ;
, for (Index. = Threshold; Index < MAXQUANTLÉVELS; lňdex+ +) 1
LookUpTable(lndex) = MAXSAMPLEVAL · Index:
PlTransformdmageData.Col.Row.Width.Height,LookUpTable); .
This funciion eonvens a gray scale image.to a binary. image witheach pixel either on (WHITE) or off (BLACK). The pixel levei at .
which the cut óff is made is comrolled by Threshold. Pixeis in the range 0..Threshold-1 beeome black while pixel values between Threshold..63 become while.
void ThresholdhnagefBYTE huge ‘ImageData, unsigned Threshold. unsigned Col. unsigned Row.
unsigned Width. unsigned Height) {
regisier unsigned Index;
BYTE LóokUpTíblefMAXQUANTLEVELSl:
: for (Index = MINSAMPLEVAL: Index < Threshold; lndex++) LookUpTable(lndex) = BLACK;
for (Index = Threshold: index < MAXQUANTLEVELS; lndex+ +) LookUpTable(Index) « WHITE;
PíTransfonnOmageData.CóbRow.Widih.Heighi.LookUpTable):
vóid.SireichlmageContrasifBYTE huge ‘lmageDaia, unsigned 'HistoData. ' unsigned Threshold.
unsigned Col. unsigned Row, unsigned Width. unsigned Height) < ' regisier unsigned Index.. NewMin. NewMax; double SiepSiz. StepVai;
BYTE LookUpTable{MAXQUANTLEVELSJ:
/*
Séarch from the low biji.towards ihehigh.bin for the first one lhát . exeeeds the threshold / fcr (Index =0: Index < MAXQUANTLEVELS; Jndex+ +) if <HisioDaia[Index] > Threshold) ' . <
break:
NewMin = Index;
' /·
Search from the high bin lowards the low bin for the lírsi one thai . exeeeds the threshold , / I ‘ ' i ' for (Index “MAXSAMPLEVAL: Index > NewMin; Index--) if (HistoDatafIndex | > Threshold) ;
break;
NewMax a index; / '
StepSiz- = (double)MAXQUANTLEVELS/<douhle)(NíwMax-NewMin+1);
StepVai 0.0;
/‘ values beiow new minimum are assigned zero in the LUT ·/ for (IndeXó; Index < NewMin; Index+ + )
- LookUpTab!e[Index] « MINSAMPLEVAL;
/· values above.hew maximum are assigned the max sample.value *1 for (Index=NewMax + l: Index <. MAXQUANTLEVELS; Index+4)
LookUpTable(Index) = MÁXSAMPLEVAL;
/· values between the ňew minimum and new maximum are střeiehed *1 for.(Index“NewMin; Index .< = NewMax: Index+ + )
·. ·» »<· * . LookUpTable(lndex) = StepVal;
StepVaJ + = SiepSú;.
} /·
Look Up Table is now prepared to poini transform ihe image data, •I .
PrTransform(lmagéData.Co],Row,Widih.Height,LookUpTable);
Claims (30)
- PATENTOVÉ NÁROKY1. Způsob vytváření trojrozměrného obrazu ze zobrazení dvojrozměrného obrazu, vytvořeného diskrétními obrazovými prvky, obsahující zajištění soustavy optických prvků, příslušně scentrovaných před obrazovými prvky, a měnění efektivní ohniskové vzdálenosti každého optického prvku pro změnu zdánlivé vizuální vzdálenosti od pozorovatele, nacházejícího se před zobrazovačem, na němž ' je znázorněn každý jednotlivý obrazový bod, vyznačující se tím, že každý optický prvek má ohniskovou délku, která se mění progresivně podél ploch orientovaných obecně rovnoběžně s obrazem, přičemž měnění efektivní ohniskové délky každého optického prvku obsahuje kroky posuvu místa, na němž je světlo emitováno z dvourozměrného obrazu bezprostředně uvnitř každého obrazového prvku, a převádění emitovaného světla k optickým prvkům, kde místo, na nějž emitované světlo na’optických prvcích dopadá, určuje zdánlivou hloubku obrazového bodu.
- 2. Způsob vytváření trojrozměrného obrazu podle nároku 1, vyznačující se tím, že optické prvky jsou lomové prvky a světlo vstupuje do lomové plochy přidruženého lomového prvku.
- 3. Způsob vytváření trojrozměrného obrazu podle nároku 1, vyznačující se tím, že optické prvky jsou i·· φ··*» « « *· *» »· • « · • · « ««* ·♦· zrcadla a světlo dopadá na odrazovou plochu přidruženého zrcadla.
- 4. Způsob vytváření trojrozměrného obrazu podle nároku 1, 2 nebo 3, vyznačující se tím, že krok posuvu místa, na němž je světlo emitováno z dvourozměrného obrazu, obsahuje lineární posuv bodu, na němž je světlo emitováno z dvourozměrného obrazu.
- 5. Způsob vytváření trojrozměrného obrazu podle nároku 1, 2 nebo 3, vyznačující se tím, že krok zobrazení místa, na němž je světlo emitováno z dvourozměrného obrazu, obsahuje radiální posuv místa, na němž je světlo emitováno z dvourozměeného obrazu.
- 6. Zobrazovací zařízení pro provádění způsobu podle kteréhokoliv z nároků 1 až 5, na němž je znázorněn obraz vytvořený diskrétními obrazovými body, kde toto ' zařízení je opatřeno soustavou optických prvků, příslušně zcentrovaných přeď obrazovými body, a prostředky pro individuální měnění efektivní ohniskové délky každého optického prvku pro změnu zdánlivé vizuální vzdálenosti od pozorovatele, nacházejícího.se před zobrazovacím zařízením, na němž se zobrazuje každý jednotlivý obrazový bod, Čímž se vytváří trojrozměrný obraz, vyznačující se tím, že je opatřeno prostředky (18, 65) pro malý posuv místa (5b, 6b, 7b), v němž je světlo v obrazovém bodě emitováno, a to podle požadované hloubky tak, že je zde odpovídající posuv místa44 444444 4 44 44 • 4 4 4 4 · 4 4444 • 4 « I 4 * · 4 4 « 4 4 4 I · 4 4444444 4 4 4 4 4 44444 4 4· 44 4 · » *· {5, 6, 7) vstupu světla podél vstupní plochy optického prvku, čímž se účinná ohniskové délka dynamicky mění a zdánlivá vizuální vzdálenost (5a, 6a, 7a) od pozorovatele se mění podle posuvu místa vstupu světla.
- 7. Zobrazovací zařízení podle nároku 6, vyznačující se t.í m , že optické prvky (2) jsou lomové prvky a vstupní plocha je lomová plocha.
- 8. Zobrazovací zařízení podle nároku 7, vyznačující se tím, že lomové plochy jsou tvarovány pro zaI jištění proměnné ohniskové délky. ,
- 9. Zobrazovací zařízení podle nároku 7, vyznačuj ιοί se tím, že optické lomové prvky (2) jsou vyrobeny z optického materiálu s proměnným indexem lomu, v němž se index lomu mění progresivně podél lomového prvku.pro vytvoření proměnné ohniskové délky.
- 10. Zobrazovací zařízení podle značující se tím a ohniskovou délkou je lineární.nároku v, ze7, 8 nebo 9, vyvztah mezi posuvem
- 11. Zobrazovací zařízení podle nároku značující se tím, že7, 8 nebo 9, vy - vztah mezi posuvem a ohniskovou délkou je nelineární
• «toto toto < • · • a · « * · to toto to to · ·' * to toto* » • • · ·» to to to »v - 12. Zobrazovací zařízení podle kteréhokoliv z nároků 7 až 11, vyznačující se tím, že každý optický lomový prvek (39) má ohniskovou délku měnící se radiálně vůči optické ose optického lomového prvku a posouvací prostředek posouvá radiálně v obrazovém bodu místo (40a, 4la, 42a), na němž je světlo emitováno.
- 13. Zobrazovací zařízení podle kteréhokoliv z nároků 7 až 11, vyznačující se tím, že každý optický lomový prvek (2) je podlouhlý a má ohniskovou vzdálenost měnící se podél jeho délky od jednoho konce, a zobrazovací prostředek posouvá lineárně v obrazovém bodě bod, v němž je emitováno světlo.
- 14. Zobrazovací zařízení podle kteréhokoliv z předcházejících nároků, vyznačující se tím, že obsahuje jako světelný zdroj jedno zařízení ze skupiny tvořené zobrazovacím zařízením na bázi tekutých krystalů, zobrazovacím zařízením na bázi elektroluminiscence a zobrazovacím zařízením na bázi plasmového zobrazení.
- 15. Zobrazovací zařízení podle nároku 13, vyznačuj ιοί se tím, že zahrnuje obrazovku (10), opatřenou soustavou podlouhlých fosforových obrazových bodů, a prostředek pro posun místa, na němž je světlo v obrazovém bodě emitováno, obsahuje prostředek (65) pro posuv elektronového svazku podél každého fosforového obrazového bodu.
40 0400 0» 0 00 00 0 0 4 0 • 0 0 4 4 0 » 4 • * 0 0 • 0 0 0 0 4 0 « 0 • 0 0 0 • 0 0 • 4 0» 0 » 0 0 0 0 0 4 0 - 16. Zobrazovací zařízení podle nároku 15, vyznačující se tím, že elektronový svazek (66d) má pravoúhlý průřez.
- 17. Zobrazovací jící se oválný.průřez.* zařízení podle nároku 15, tím, že elektronový vyzná ču svazek (66c) má
- 18. Zobrazovací zařízení podle nároku 15, vyznačující tím, že obrazové body jsou uspořádány v řadách, přičemž toto zařízení je tvořeno televizním přijímačem majícím prostředek (58, 59, 61, 62, 63) pro vybrání hloubkové složky pro každý obrazový bod z přijímaného signálu a prostředek (60) pro přidání hloubkového signálu ke konvenčnímu horizontálnímu rozmítanému řádku pro řízení vertikální úrovně horizontálního rozmítaného řádku bod po bodu, čímž se dosáhne stupňovitého rozmítaného řádku (20).
- 19. Zobrazovací zařízení podle nároku 7, vyznačující se tím, že mezi jednotlivými optickými prvky je vytvořena malá vmezeřená .štěrbina.
- 20. Zobrazovací zařízení podle nároku 19, vyznačující se tím, že vmezeřená štěrbina je vyplněna Černým neprůhledným materiálem.
*· ·«·· ·· * a · «· • · · * · • · * * · • * * « ♦ * v • 9 · ·* ·· « • • • ···* · '« · · - 21. Zobrazovací zařízení podle nároku 7, vyznačující se tím, že optické prvky jsou vytvořeny ve formě desky vylisované z plastického materiálu.
- 22. Zobrazovací zařízení podle nároku 7, vyznačující se tím, že optické prvky jsou vytvořeny na desce z plastického materiálu vytvořené injekčním litím.
- 23. Zobrazovací, zařízení podle nároku 7, vyznačující se tím, že každý optický prvek je složeným přístrojem obsahujícím alespoň dvě jednotlivé óp ti číče “složky (Obr. l(b)).
- 24. Zobrazovací zařízení podle nároku 23, vyznačující se tím, že alespoň dvě individuální optické složky jsou vytvořeny jako alespoň dvě desky vylisované z plastického materiálu, které jsou k sobě přitmeleny.
- 25. Zobrazovací zařízení podle nároku 23, vyznačující se tím, že alespoň dvě jednotlivé optické složky jsou vytvořeny jako alespoň dvě desky vylisované z plastického materiálu, které jsou navzájem spojené u svých okrajů.•h
- 26. Zobrazovací zařízení podle nároku 13, vyznačuj íc í se tím, že je ve formě prohlížečky nebo projektoru pro fotografický film (14) a prostředek pro posuv bodu, * « ©ί «» ·* » · ·· • © ·· · · na němž je světlo emitováno, obsahuje každému obrazovému bodu fotografického jištěn předvolený průsvitný bod (5c).masku, přiloženou ke filmu tak, že je za
- 27. Zobrazovací zařízení podle nároku 6, vyznačující se tím, že optické prvky jsou zrcadla (76,· 77) a vstupní plocha je.odrazová plocha.
- 28. Zobrazovací zařízení podle nároku 27 vyznaču_c_..í____s...e__t_í .m_.,._..__.že_ka.ždý___optický prvek obsahuje rovinné zrcadlo (76) a konkávní zrcadlo (77).
- 29. Zobrazovací zařízení podle nároku 28 vyznačující se tím, že každé rovinné zrcadlo (76) je vytvořeno jako jedna plocha kombinovaného prvku (78), jejíž další plochu vytváří konkávní zrcadlo (77) sousedního obrazového bodu.
- 30. Zobrazovací zařízení podle nároku 15, 16 nebo 17, vyznačující sě tím, že je to počítačový monitor a na počítači založená elektronika obrazového budiče, mající prostředky pro výběr hloubkové složky každého obrazového bodu z dat přijatých z počítače a prostředky (19) pro přidání hloubkové složky k běžnému řádku horizontálního rastru, obrazový bod za obrazovým bodem, čímž je dosaženo stupňového rastru (20).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/368,644 US5790086A (en) | 1995-01-04 | 1995-01-04 | 3-D imaging system |
Publications (2)
Publication Number | Publication Date |
---|---|
CZ207797A3 true CZ207797A3 (cs) | 1999-04-14 |
CZ288672B6 CZ288672B6 (cs) | 2001-08-15 |
Family
ID=23452130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CZ19972077A CZ288672B6 (cs) | 1995-01-04 | 1995-12-28 | Způsob vytváření trojrozměrného obrazu a zařízení pro provádění tohoto způsobu |
Country Status (18)
Country | Link |
---|---|
US (1) | US5790086A (cs) |
EP (3) | EP0957386A1 (cs) |
JP (4) | JP3231330B2 (cs) |
KR (1) | KR19980701263A (cs) |
CN (1) | CN1125362C (cs) |
AT (1) | ATE190410T1 (cs) |
AU (1) | AU702635B2 (cs) |
BR (1) | BR9510228A (cs) |
CA (1) | CA2208711C (cs) |
CZ (1) | CZ288672B6 (cs) |
DE (1) | DE69515522T2 (cs) |
ES (1) | ES2147622T3 (cs) |
HK (1) | HK1001782A1 (cs) |
MX (1) | MX9705051A (cs) |
NZ (2) | NZ334276A (cs) |
PL (1) | PL181803B1 (cs) |
RU (1) | RU2168192C2 (cs) |
WO (1) | WO1996021171A2 (cs) |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014259A (en) * | 1995-06-07 | 2000-01-11 | Wohlstadter; Jacob N. | Three dimensional imaging system |
US6469683B1 (en) * | 1996-01-17 | 2002-10-22 | Nippon Telegraph And Telephone Corporation | Liquid crystal optical device |
US6259450B1 (en) | 1996-06-05 | 2001-07-10 | Hyper3D Corp. | Three-dimensional display system apparatus and method |
US6304263B1 (en) | 1996-06-05 | 2001-10-16 | Hyper3D Corp. | Three-dimensional display system: apparatus and method |
US6459200B1 (en) | 1997-02-27 | 2002-10-01 | Chad Byron Moore | Reflective electro-optic fiber-based displays |
US7082236B1 (en) * | 1997-02-27 | 2006-07-25 | Chad Byron Moore | Fiber-based displays containing lenses and methods of making same |
US6414433B1 (en) | 1999-04-26 | 2002-07-02 | Chad Byron Moore | Plasma displays containing fibers |
US6452332B1 (en) | 1999-04-26 | 2002-09-17 | Chad Byron Moore | Fiber-based plasma addressed liquid crystal display |
US6262694B1 (en) * | 1997-03-11 | 2001-07-17 | Fujitsu Limited | Image display system |
WO1999030280A1 (en) * | 1997-12-05 | 1999-06-17 | Dynamic Digital Depth Research Pty. Ltd. | Improved image conversion and encoding techniques |
JP2002527000A (ja) * | 1998-09-28 | 2002-08-20 | ローズ リサーチ エル.エル.シー. | 三次元画像を表示するための方法及び装置 |
US6431935B1 (en) | 1999-04-26 | 2002-08-13 | Chad Byron Moore | Lost glass process used in making display |
US6354899B1 (en) | 1999-04-26 | 2002-03-12 | Chad Byron Moore | Frit-sealing process used in making displays |
US6611100B1 (en) | 1999-04-26 | 2003-08-26 | Chad Byron Moore | Reflective electro-optic fiber-based displays with barriers |
US6174161B1 (en) * | 1999-07-30 | 2001-01-16 | Air Products And Chemical, Inc. | Method and apparatus for partial oxidation of black liquor, liquid fuels and slurries |
US7068434B2 (en) * | 2000-02-22 | 2006-06-27 | 3M Innovative Properties Company | Sheeting with composite image that floats |
US6490092B1 (en) | 2000-03-27 | 2002-12-03 | National Graphics, Inc. | Multidimensional imaging on a curved surface using lenticular lenses |
US6714173B2 (en) * | 2000-06-16 | 2004-03-30 | Tdk Corporation | Three dimensional screen display |
US6570324B1 (en) | 2000-07-19 | 2003-05-27 | Eastman Kodak Company | Image display device with array of lens-lets |
CA2418089A1 (en) * | 2000-08-04 | 2002-02-14 | Dynamic Digital Depth Research Pty Ltd. | Image conversion and encoding technique |
US6720961B2 (en) | 2000-11-06 | 2004-04-13 | Thomas M. Tracy | Method and apparatus for displaying an image in three dimensions |
US6985162B1 (en) * | 2000-11-17 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Systems and methods for rendering active stereo graphical data as passive stereo |
JP2002176660A (ja) * | 2000-12-08 | 2002-06-21 | Univ Tokyo | 画像表示方法及び画像表示装置 |
US7061532B2 (en) | 2001-03-27 | 2006-06-13 | Hewlett-Packard Development Company, L.P. | Single sensor chip digital stereo camera |
US20020140133A1 (en) * | 2001-03-29 | 2002-10-03 | Moore Chad Byron | Bichromal sphere fabrication |
US8267767B2 (en) | 2001-08-09 | 2012-09-18 | Igt | 3-D reels and 3-D wheels in a gaming machine |
US8002623B2 (en) | 2001-08-09 | 2011-08-23 | Igt | Methods and devices for displaying multiple game elements |
US7367885B2 (en) | 2001-08-09 | 2008-05-06 | Igt | 3-D text in a gaming machine |
US7901289B2 (en) | 2001-08-09 | 2011-03-08 | Igt | Transparent objects on a gaming machine |
US6887157B2 (en) | 2001-08-09 | 2005-05-03 | Igt | Virtual cameras and 3-D gaming environments in a gaming machine |
US7909696B2 (en) | 2001-08-09 | 2011-03-22 | Igt | Game interaction in 3-D gaming environments |
RU2224273C2 (ru) * | 2001-09-11 | 2004-02-20 | Голенко Георгий Георгиевич | Устройство голенко для получения объемного изображения объектов |
AU2003218182B2 (en) * | 2002-03-14 | 2008-12-18 | Netkisr Inc. | System and method for analyzing and displaying computed tomography data |
US8369607B2 (en) | 2002-03-27 | 2013-02-05 | Sanyo Electric Co., Ltd. | Method and apparatus for processing three-dimensional images |
US7918730B2 (en) | 2002-06-27 | 2011-04-05 | Igt | Trajectory-based 3-D games of chance for video gaming machines |
WO2004038486A1 (ja) * | 2002-10-23 | 2004-05-06 | Pioneer Corporation | 画像表示装置及び画像表示方法 |
US20050041163A1 (en) * | 2003-05-07 | 2005-02-24 | Bernie Butler-Smith | Stereoscopic television signal processing method, transmission system and viewer enhancements |
WO2005065085A2 (en) * | 2003-12-21 | 2005-07-21 | Kremen Stanley H | System and apparatus for recording, transmitting, and projecting digital three-dimensional images |
WO2006047488A2 (en) * | 2004-10-25 | 2006-05-04 | The Trustees Of Columbia University In The City Of New York | Systems and methods for displaying three-dimensional images |
US20060238545A1 (en) * | 2005-02-17 | 2006-10-26 | Bakin Dmitry V | High-resolution autostereoscopic display and method for displaying three-dimensional images |
EP1875440B1 (en) | 2005-04-19 | 2008-12-03 | Koninklijke Philips Electronics N.V. | Depth perception |
US7961196B2 (en) | 2005-05-13 | 2011-06-14 | Koninklijke Philips Electronics N.V. | Cost effective rendering for 3D displays |
US20070127909A1 (en) * | 2005-08-25 | 2007-06-07 | Craig Mowry | System and apparatus for increasing quality and efficiency of film capture and methods of use thereof |
CN101203887B (zh) * | 2005-06-03 | 2011-07-27 | 米迪尔波得股份有限公司 | 提供用于多维成像的图像的照相机和多维成像系统 |
WO2006133133A2 (en) * | 2005-06-03 | 2006-12-14 | Mediapod Llc | Multi-dimensional imaging system and method |
EP1938136A2 (en) * | 2005-10-16 | 2008-07-02 | Mediapod LLC | Apparatus, system and method for increasing quality of digital image capture |
CN101490735B (zh) * | 2006-05-18 | 2012-08-29 | Eth苏黎世公司 | 显示设备 |
KR101023262B1 (ko) | 2006-09-20 | 2011-03-21 | 니폰덴신뎅와 가부시키가이샤 | 화상 부호화 방법 및 복호 방법, 이들의 장치 및 이들의 프로그램과 프로그램을 기록한 기억매체 |
JP4999853B2 (ja) | 2006-09-20 | 2012-08-15 | 日本電信電話株式会社 | 画像符号化方法及び復号方法、それらの装置、及びそれらのプログラム並びにプログラムを記録した記憶媒体 |
KR100846498B1 (ko) * | 2006-10-18 | 2008-07-17 | 삼성전자주식회사 | 영상 해석 방법 및 장치, 및 동영상 영역 분할 시스템 |
KR100829581B1 (ko) * | 2006-11-28 | 2008-05-14 | 삼성전자주식회사 | 영상 처리 방법, 기록매체 및 장치 |
US8330801B2 (en) | 2006-12-22 | 2012-12-11 | Qualcomm Incorporated | Complexity-adaptive 2D-to-3D video sequence conversion |
KR101059178B1 (ko) | 2006-12-28 | 2011-08-25 | 니폰덴신뎅와 가부시키가이샤 | 영상 부호화 방법 및 복호방법, 그들의 장치, 그들의 프로그램을 기록한 기억매체 |
US8384710B2 (en) | 2007-06-07 | 2013-02-26 | Igt | Displaying and using 3D graphics on multiple displays provided for gaming environments |
TW200910975A (en) * | 2007-06-25 | 2009-03-01 | Nippon Telegraph & Telephone | Video encoding method and decoding method, apparatuses therefor, programs therefor, and storage media for storing the programs |
US7957061B1 (en) | 2008-01-16 | 2011-06-07 | Holovisions LLC | Device with array of tilting microcolumns to display three-dimensional images |
CN101516040B (zh) * | 2008-02-20 | 2011-07-06 | 华为终端有限公司 | 视频匹配方法、装置及系统 |
PL2362671T3 (pl) * | 2008-07-25 | 2014-05-30 | Koninklijke Philips Nv | Obsługa napisów przez wyświetlacz 3D |
EP2351377A1 (en) * | 2008-10-21 | 2011-08-03 | Koninklijke Philips Electronics N.V. | Method and system for processing an input three dimensional video signal |
US7889425B1 (en) | 2008-12-30 | 2011-02-15 | Holovisions LLC | Device with array of spinning microlenses to display three-dimensional images |
JP5739351B2 (ja) | 2009-03-11 | 2015-06-24 | サクラ ファインテック ユー.エス.エー., インコーポレイテッド | 自動合焦方法および自動合焦装置 |
US7978407B1 (en) | 2009-06-27 | 2011-07-12 | Holovisions LLC | Holovision (TM) 3D imaging with rotating light-emitting members |
US8487836B1 (en) | 2009-09-11 | 2013-07-16 | Thomas A. Bodine | Multi-dimensional image rendering device |
JP2011109294A (ja) * | 2009-11-16 | 2011-06-02 | Sony Corp | 情報処理装置、情報処理方法、表示制御装置、表示制御方法、およびプログラム |
US8587498B2 (en) * | 2010-03-01 | 2013-11-19 | Holovisions LLC | 3D image display with binocular disparity and motion parallax |
RU2562757C2 (ru) * | 2010-04-18 | 2015-09-10 | АЙМАКС Юроп СА | Двойное наложенное проецирование |
JP6149339B2 (ja) | 2010-06-16 | 2017-06-21 | 株式会社ニコン | 表示装置 |
JP2013536601A (ja) * | 2010-06-21 | 2013-09-19 | アイマックス コーポレイション | 二重スタック投影 |
EP2418857A1 (en) * | 2010-08-12 | 2012-02-15 | Thomson Licensing | Stereoscopic menu control |
JP5413516B2 (ja) * | 2010-08-19 | 2014-02-12 | 日産自動車株式会社 | 立体物検出装置及び立体物検出方法 |
US10139613B2 (en) | 2010-08-20 | 2018-11-27 | Sakura Finetek U.S.A., Inc. | Digital microscope and method of sensing an image of a tissue sample |
CN101986350B (zh) * | 2010-10-22 | 2012-03-28 | 武汉大学 | 基于单目结构光的三维建模方法 |
US8860792B1 (en) | 2010-11-02 | 2014-10-14 | Tommy Lee Bolden | Two dimensional to three dimensional video display system |
RU2010148868A (ru) * | 2010-11-30 | 2012-06-10 | Святослав Иванович Арсенич (RU) | Проекционная система с торцевой проекцией и видеопроектор для этой системы |
CN105894567B (zh) * | 2011-01-07 | 2020-06-30 | 索尼互动娱乐美国有限责任公司 | 放缩三维场景中的用户控制的虚拟对象的像素深度值 |
US9622913B2 (en) * | 2011-05-18 | 2017-04-18 | Alcon Lensx, Inc. | Imaging-controlled laser surgical system |
WO2013024430A1 (en) | 2011-08-16 | 2013-02-21 | Imax Corporation | Hybrid image decomposition and projection |
US10326968B2 (en) | 2011-10-20 | 2019-06-18 | Imax Corporation | Invisible or low perceptibility of image alignment in dual projection systems |
US9503711B2 (en) | 2011-10-20 | 2016-11-22 | Imax Corporation | Reducing angular spread in digital image projection |
US8553942B2 (en) | 2011-10-21 | 2013-10-08 | Navteq B.V. | Reimaging based on depthmap information |
US9047688B2 (en) * | 2011-10-21 | 2015-06-02 | Here Global B.V. | Depth cursor and depth measurement in images |
WO2013082695A1 (en) * | 2011-12-08 | 2013-06-13 | Exopc | Method for improving an interaction with a user interface displayed on a 3d touch screen display |
US9024970B2 (en) | 2011-12-30 | 2015-05-05 | Here Global B.V. | Path side image on map overlay |
US9404764B2 (en) | 2011-12-30 | 2016-08-02 | Here Global B.V. | Path side imagery |
US8879827B2 (en) * | 2012-06-29 | 2014-11-04 | Intel Corporation | Analyzing structured light patterns |
UA79936U (en) | 2012-10-22 | 2013-05-13 | Василий Борисович Однороженко | Autostereoscopic system |
RU2515489C1 (ru) * | 2013-01-11 | 2014-05-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Южно-Российский государственный университет экономики и сервиса" (ФГБОУ ВПО "ЮРГУЭС") | Устройство адаптивной фильтрации видеосигналов |
DE102013103971A1 (de) | 2013-04-19 | 2014-11-06 | Sensovation Ag | Verfahren zum Erzeugen eines aus mehreren Teilbildern zusammengesetzten Gesamtbilds eines Objekts |
GB2518019B (en) | 2013-12-13 | 2015-07-22 | Aveva Solutions Ltd | Image rendering of laser scan data |
US10007102B2 (en) | 2013-12-23 | 2018-06-26 | Sakura Finetek U.S.A., Inc. | Microscope with slide clamping assembly |
CN104360533B (zh) * | 2014-12-03 | 2017-08-29 | 京东方科技集团股份有限公司 | 一种 3d 显示装置及其显示驱动方法 |
CN105423170A (zh) * | 2015-09-09 | 2016-03-23 | 广州市辉科光电科技有限公司 | Led裸眼3d蜂巢灯 |
US11280803B2 (en) | 2016-11-22 | 2022-03-22 | Sakura Finetek U.S.A., Inc. | Slide management system |
EP3425907B1 (en) * | 2017-07-03 | 2022-01-05 | Vestel Elektronik Sanayi ve Ticaret A.S. | Display device and method for rendering a three-dimensional image |
WO2019232768A1 (en) * | 2018-06-08 | 2019-12-12 | Chiu Po Hsien | Devices for displaying 3d image |
CN109765695B (zh) * | 2019-03-29 | 2021-09-24 | 京东方科技集团股份有限公司 | 一种显示系统和显示装置 |
CN111240035B (zh) * | 2020-03-31 | 2022-03-01 | 吉林省广播电视研究所(吉林省广播电视局科技信息中心) | 透射变焦扫描裸眼三维显示方法 |
CN113280754A (zh) * | 2021-07-22 | 2021-08-20 | 清华大学 | 高精度深度计算装置及方法 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2961486A (en) * | 1951-03-05 | 1960-11-22 | Alvin M Marks | Three-dimensional display system |
NL260800A (cs) * | 1958-09-03 | |||
US3555349A (en) * | 1968-07-17 | 1971-01-12 | Otto John Munz | Three-dimensional television system |
US3674921A (en) * | 1969-11-12 | 1972-07-04 | Rca Corp | Three-dimensional television system |
FR2094205A5 (cs) * | 1970-03-06 | 1972-02-04 | Anvar | |
US3878329A (en) * | 1973-08-22 | 1975-04-15 | Itt | Orthoscopic image tube |
JPS5792989A (en) * | 1980-12-01 | 1982-06-09 | Kiyoshi Nagata | Transmission and receiving system for stereoscopic color television |
US4571041A (en) * | 1982-01-22 | 1986-02-18 | Gaudyn Tad J | Three dimensional projection arrangement |
FR2531252B1 (fr) * | 1982-07-29 | 1987-09-25 | Guichard Jacques | Procede d'affichage d'images en relief et dispositif de mise en oeuvre |
JPS59182688A (ja) * | 1983-03-31 | 1984-10-17 | Toshiba Corp | ステレオ視処理装置 |
US4925294A (en) * | 1986-12-17 | 1990-05-15 | Geshwind David M | Method to convert two dimensional motion pictures for three-dimensional systems |
WO1986003924A1 (en) * | 1984-12-17 | 1986-07-03 | Nippon Hoso Kyokai | System for transmitting stereoscopic television pictures |
JPS61198896A (ja) * | 1985-02-28 | 1986-09-03 | Canon Inc | 立体表示装置の立体表示方式 |
JPS61253993A (ja) * | 1985-05-07 | 1986-11-11 | Nippon Hoso Kyokai <Nhk> | 立体テレビジョン画像信号の伝送方法 |
JPS6277794A (ja) * | 1985-09-30 | 1987-04-09 | Sony Corp | 三次元表示装置 |
US4829365A (en) * | 1986-03-07 | 1989-05-09 | Dimension Technologies, Inc. | Autostereoscopic display with illuminating lines, light valve and mask |
GB8626527D0 (en) * | 1986-11-06 | 1986-12-10 | British Broadcasting Corp | 3d video transmission |
FR2611926B1 (fr) * | 1987-03-03 | 1989-05-26 | Thomson Csf | Dispositif de visualisation collimatee en relief |
US5081530A (en) * | 1987-06-26 | 1992-01-14 | Antonio Medina | Three dimensional camera and range finder |
GB8716369D0 (en) * | 1987-07-10 | 1987-08-19 | Travis A R L | Three-dimensional display device |
GB2210540A (en) * | 1987-09-30 | 1989-06-07 | Philips Electronic Associated | Method of and arrangement for modifying stored data,and method of and arrangement for generating two-dimensional images |
US4878735A (en) * | 1988-01-15 | 1989-11-07 | Lookingglass Technology, Inc. | Optical imaging system using lenticular tone-plate elements |
JPH07101259B2 (ja) * | 1988-05-10 | 1995-11-01 | シャープ株式会社 | 立体映像表示装置 |
EP0360903B1 (en) * | 1988-09-29 | 1994-01-26 | Kabushiki Kaisha Toshiba | Depth information buffer control apparatus |
US5159663A (en) * | 1988-11-22 | 1992-10-27 | Wake Robert H | Imager and process |
GB2231750B (en) * | 1989-04-27 | 1993-09-29 | Sony Corp | Motion dependent video signal processing |
US5014126A (en) * | 1989-10-23 | 1991-05-07 | Vision Iii Imaging, Inc. | Method and apparatus for recording images with a single image receiver for autostereoscopic display |
US5220452A (en) * | 1990-08-06 | 1993-06-15 | Texas Instruments Incorporated | Volume display optical system and method |
US5175805A (en) * | 1990-10-30 | 1992-12-29 | Sun Microsystems, Inc. | Method and apparatus for sequencing composite operations of pixels |
US5202793A (en) * | 1990-11-23 | 1993-04-13 | John McCarry | Three dimensional image display apparatus |
JPH0568268A (ja) * | 1991-03-04 | 1993-03-19 | Sharp Corp | 立体視画像作成装置および立体視画像作成方法 |
US5293467A (en) * | 1991-04-03 | 1994-03-08 | Buchner Gregory C | Method for resolving priority between a calligraphically-displayed point feature and both raster-displayed faces and other calligraphically-displayed point features in a CIG system |
DE4110951A1 (de) * | 1991-04-05 | 1992-10-08 | Bundesrep Deutschland | Verfahren zur reduzierung der zu uebertragenden information bei der verarbeitung von stereobildpaaren |
JPH05100204A (ja) * | 1991-10-09 | 1993-04-23 | Ricoh Co Ltd | デイスプレイ装置 |
JPH05100623A (ja) * | 1991-10-09 | 1993-04-23 | Ricoh Co Ltd | デイスプレイ装置 |
US5363241A (en) * | 1992-04-07 | 1994-11-08 | Hughes Aircraft Company | Focusable virtual image display |
US5325386A (en) * | 1992-04-21 | 1994-06-28 | Bandgap Technology Corporation | Vertical-cavity surface emitting laser assay display system |
US5279912A (en) * | 1992-05-11 | 1994-01-18 | Polaroid Corporation | Three-dimensional image, and methods for the production thereof |
GB9221312D0 (en) * | 1992-10-09 | 1992-11-25 | Pilkington Visioncare Inc | Improvements in or relating to ophthalmic lens manufacture |
JPH0764020A (ja) * | 1993-06-15 | 1995-03-10 | Nikon Corp | 三次元ディスプレイおよびこれを用いた表示方法 |
US5614941A (en) * | 1993-11-24 | 1997-03-25 | Hines; Stephen P. | Multi-image autostereoscopic imaging system |
GB9325667D0 (en) * | 1993-12-15 | 1994-02-16 | Total Process Containment Ltd | Aseptic liquid barrier transfer coupling |
US5543964A (en) * | 1993-12-28 | 1996-08-06 | Eastman Kodak Company | Depth image apparatus and method with angularly changing display information |
US5475419A (en) * | 1994-06-29 | 1995-12-12 | Carbery Dimensions, Ltd. | Apparatus and method for three-dimensional video |
-
1995
- 1995-01-04 US US08/368,644 patent/US5790086A/en not_active Expired - Fee Related
- 1995-12-28 NZ NZ334276A patent/NZ334276A/xx unknown
- 1995-12-28 CA CA002208711A patent/CA2208711C/en not_active Expired - Fee Related
- 1995-12-28 JP JP52065196A patent/JP3231330B2/ja not_active Expired - Fee Related
- 1995-12-28 ES ES95941564T patent/ES2147622T3/es not_active Expired - Lifetime
- 1995-12-28 AU AU42953/96A patent/AU702635B2/en not_active Ceased
- 1995-12-28 NZ NZ297718A patent/NZ297718A/en unknown
- 1995-12-28 EP EP99202469A patent/EP0957386A1/en not_active Withdrawn
- 1995-12-28 CZ CZ19972077A patent/CZ288672B6/cs not_active IP Right Cessation
- 1995-12-28 CN CN95197619A patent/CN1125362C/zh not_active Expired - Fee Related
- 1995-12-28 MX MX9705051A patent/MX9705051A/es unknown
- 1995-12-28 WO PCT/CA1995/000727 patent/WO1996021171A2/en not_active Application Discontinuation
- 1995-12-28 EP EP99202468A patent/EP0957385A1/en not_active Withdrawn
- 1995-12-28 RU RU97112931/28A patent/RU2168192C2/ru active
- 1995-12-28 AT AT95941564T patent/ATE190410T1/de not_active IP Right Cessation
- 1995-12-28 DE DE69515522T patent/DE69515522T2/de not_active Expired - Fee Related
- 1995-12-28 PL PL95321264A patent/PL181803B1/pl unknown
- 1995-12-28 BR BR9510228A patent/BR9510228A/pt not_active Application Discontinuation
- 1995-12-28 EP EP95941564A patent/EP0801763B1/en not_active Expired - Lifetime
-
1997
- 1997-07-04 KR KR19970704652A patent/KR19980701263A/ko active IP Right Grant
-
1998
- 1998-02-05 HK HK98100837A patent/HK1001782A1/xx not_active IP Right Cessation
-
2001
- 2001-05-01 JP JP2001134738A patent/JP2002084554A/ja active Pending
- 2001-05-01 JP JP2001134736A patent/JP2002049005A/ja active Pending
- 2001-05-01 JP JP2001134737A patent/JP2002044685A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
AU4295396A (en) | 1996-07-24 |
JP3231330B2 (ja) | 2001-11-19 |
CN1175309A (zh) | 1998-03-04 |
NZ334276A (en) | 2000-09-29 |
JP2002044685A (ja) | 2002-02-08 |
DE69515522T2 (de) | 2000-11-16 |
CZ288672B6 (cs) | 2001-08-15 |
KR19980701263A (cs) | 1998-05-15 |
MX9705051A (es) | 1997-10-31 |
EP0801763B1 (en) | 2000-03-08 |
US5790086A (en) | 1998-08-04 |
JPH10512060A (ja) | 1998-11-17 |
DE69515522D1 (de) | 2000-04-13 |
CN1125362C (zh) | 2003-10-22 |
BR9510228A (pt) | 1997-11-04 |
EP0801763A2 (en) | 1997-10-22 |
EP0957386A1 (en) | 1999-11-17 |
EP0957385A1 (en) | 1999-11-17 |
JP2002049005A (ja) | 2002-02-15 |
RU2168192C2 (ru) | 2001-05-27 |
JP2002084554A (ja) | 2002-03-22 |
WO1996021171A2 (en) | 1996-07-11 |
WO1996021171A3 (en) | 1996-09-06 |
PL321264A1 (en) | 1997-11-24 |
ATE190410T1 (de) | 2000-03-15 |
CA2208711C (en) | 2002-05-21 |
PL181803B1 (pl) | 2001-09-28 |
ES2147622T3 (es) | 2000-09-16 |
AU702635B2 (en) | 1999-02-25 |
NZ297718A (en) | 1999-04-29 |
CA2208711A1 (en) | 1996-07-11 |
HK1001782A1 (en) | 1998-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CZ207797A3 (cs) | Způsob vytváření trojrozměrného obrazu ze zobrazení dvojrozměrného obrazu a zařízení k provádění tohoto způsobu | |
EP1057070B1 (en) | A multi-layer display and a method for displaying images on such a display | |
US20070159476A1 (en) | Method for creating a stereoscopic image master for imaging methods with three-dimensional depth rendition and device for displaying a steroscopic image master | |
US7551770B2 (en) | Image conversion and encoding techniques for displaying stereoscopic 3D images | |
EP1599053A2 (en) | Method for displaying three-dimensional image, method for capturing three-dimensional image, and three-dimentional display apparatus | |
CN101243694B (zh) | 立体显示装置 | |
CN101180658A (zh) | 深度感 | |
EP0583766A1 (en) | Depth image printed on lenticular material | |
US3932699A (en) | Three-dimensional television | |
US20030146883A1 (en) | 3-D imaging system | |
US5111103A (en) | Plural unit monitor | |
JP2006211386A (ja) | 立体画像処理装置、立体画像表示装置、及び立体画像生成方法 | |
WO1992008164A1 (en) | Cellular images and associated apparatus and processing method | |
JP2006211383A (ja) | 立体画像処理装置、立体画像表示装置、及び立体画像生成方法 | |
CN1113546C (zh) | 时分式计算机立体图像显示系统 | |
KR20010008536A (ko) | 3차원 입체영상장치 및 그 제작방법 | |
AU3122199A (en) | 3-D imaging system | |
EP1492358A2 (en) | Process for the formation of images suitable for three-dimensional viewing, and image obtained using that process | |
AU2003213467A1 (en) | A multi-layer display and a method for displaying images on such a display | |
JPH08130753A (ja) | 立体映像表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD00 | Pending as of 2000-06-30 in czech republic | ||
MM4A | Patent lapsed due to non-payment of fee |
Effective date: 20021228 |