lectures/Komp_obr_SFedU/06_Pract.tex
2021-12-24 11:39:47 +03:00

616 lines
26 KiB
TeX
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[a4paper,12pt]{extarticle}
\usepackage{/home/eddy/ed, verbatim}
\title{ðÒÁËÔÉËÕÍ \No6: ÏÂÒÁÂÏÔËÁ ÉÚÏÂÒÁÖÅÎÉÊ}
\author{}\date{}\nocolon
\long\def\task#1{\par\noindent\leavevmode\refstepcounter{sect}\llap{\textbf{\thesect}\;}\indent\textit{#1}\par}
\def\t#1{{\upshape\ttfamily #1}}
\usepackage{etoolbox}
\makeatletter
\preto{\@verbatim}{\topsep=2pt \partopsep=1pt} % remove big space before verbatim
\AtEndEnvironment{verbatim}{\vspace{5pt}}
\makeatother
\begin{document}
\maketitle
\section{òÁÂÏÔÁ Ó ÉÚÏÂÒÁÖÅÎÉÑÍÉ × Octave}
\subsection{FITS-ÆÁÊÌÙ}
îÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÏÊ ÕÔÉÌÉÔÏÊ ÐÒÏÓÍÏÔÒÁ FITS-ÆÁÊÌÏ× Ñ×ÌÑÅÔÓÑ \t{ds9}.
äÌÑ ÒÁÂÏÔÙ Ó ÏÂÙÞÎÙÍÉ ÉÚÏÂÒÁÖÅÎÉÑÍÉ × Octave ÉÓÐÏÌØÚÕÀÔÓÑ ÆÕÎËÃÉÉ \t{imread}, \t{iminfo},
\t{imshow}. ïÓÎÏ×ÎÙÅ ÆÕÎËÃÉÉ ÏÂÒÁÂÏÔËÉ ÉÚÏÂÒÁÖÅÎÉÊ ÎÁÈÏÄÑÔÓÑ × ÐÁËÅÔÅ \t{image}.
FITS-ÆÁÊÌÙ~--- ÐÁËÅÔ \t{fits}. õÚÎÁÔØ ×ÈÏÄÑÝÉÅ × ÓÏÓÔÁ× ÐÁËÅÔÁ ÆÕÎËÃÉÉ ÍÏÖÎÏ ÔÁË:
\begin{verbatim}
pkg describe -verbose fits
---
Package name:
fits
Version:
1.0.7
Short description:
The Octave-FITS package provides functions for reading, and writing FITS
(Flexible Image Transport System) files. This package uses the libcfitsio library.
Status:
Loaded
---
Provides:
Reading and writing FITS files
read_fits_image
save_fits_image
save_fits_image_multi_ext
\end{verbatim}
äÌÑ ÞÔÅÎÉÑ ÉÓÐÏÌØÚÕÅÍ \t{read\_fits\_image}:
\begin{verbatim}
[I H] = read_fits_image('stars.fit');
imshow(I,[1000 4000])
\end{verbatim}
îÅÏÂÈÏÄÉÍÏ ÕËÁÚÙ×ÁÔØ ÐÏÒÏÇÉ ÉÎÔÅÎÓÉ×ÎÏÓÔÅÊ ÄÌÑ \t{imshow}. âÏÌÅÅ ÔÏÞÎÏ ÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÄÉÁÐÁÚÏÎÙ
ÉÚ ÓÔÁÔÉÓÔÉËÉ ÐÏ ÉÚÏÂÒÁÖÅÎÉÀ:
\begin{verbatim}
Imin = min(I(:))
Imin = 1321
Imax(I(:))
Imax = 52826
Imean = mean2(I)
Imean = 2054.6
Istd = std2(I)
Istd = 1275.5
Imed = median(I(:))
Imed = 2009
Low = Imin; High = Imed + Istd;
imshow(I, [Low High]);
% or: imshow(I/High)
\end{verbatim}
ëÁË ×ÉÄÉÔÅ, ÉÚÏÂÒÁÖÅÎÉÅ ÐÏ×ÅÒÎÕÔÏ ×ÐÒÁ×Ï ÎÁ $90\degr$.
åÓÌÉ ÍÙ ÚÁÈÏÔÉÍ ÏÔÏÂÒÁÖÁÔØ ÉÚÏÂÒÁÖÅÎÉÑ ËÁË × ÏÒÉÇÉÎÁÌÅ, ÎÕÖÎÏ ÚÁÒÁÎÅÅ ÐÏ×ÅÒÎÕÔØ ÉÈ:
\begin{verbatim}
I = rot90(I);
imshow(I, [Low High])
\end{verbatim}
óÌÅÄÕÅÔ ÐÏÍÎÉÔØ, ÞÔÏ × Octave ËÏÏÒÄÉÎÁÔÙ ÉÚÏÂÒÁÖÅÎÉÑ ÎÁÞÉÎÁÀÔÓÑ Ó ×ÅÒÈÎÅÇÏ ÌÅ×ÏÇÏ ÕÇÌÁ (É ÏÓØ~Y
ÎÁÐÒÁ×ÌÅÎÁ ×ÎÉÚ), Á × ÓÔÁÎÄÁÒÔÅ FITS~--- Ó ÌÅ×ÏÇÏ ÎÉÖÎÅÇÏ (É ÏÓØ~Y ÎÁÐÒÁ×ÌÅÎÁ ××ÅÒÈ).
õÂÅÄÉÍÓÑ × ÜÔÏÍ:
\begin{verbatim}
I2=I;
I2([1:100],[1:100])=65000;
imshow(I2, [Low High]);
\end{verbatim}
óÒÁ×ÎÉÍ, ËÁË ÏÔÏÂÒÁÖÁÀÔÓÑ ËÏÏÒÄÉÎÁÔÙ ÐÉËÓÅÌÑ × ds9.
\subsection{òÁÂÏÔÁ Ó ÇÉÓÔÏÇÒÁÍÍÏÊ}
äÌÑ ÕÌÕÞÛÅÎÉÑ ÏÔÏÂÒÁÖÅÎÉÑ ÐÏÐÒÏÂÕÅÍ ÜË×ÁÌÉÚÏ×ÁÔØ ÇÉÓÔÏÇÒÁÍÍÕ:
\begin{verbatim}
HE = histeq(I/High, 65536);
imshow(HE);
% compare to HE = histeq(I/High, 256);
\end{verbatim}
ðÏÓÍÏÔÒÉÍ, ËÁË ÍÅÎÑÅÔÓÑ ÇÉÓÔÏÇÒÁÍÍÁ ÉÚÏÂÒÁÖÅÎÉÑ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÒÁÓÐÒÅÄÅÌÅÎÉÑ ÛÕÍÁ.
óÇÅÎÅÒÉÒÕÅÍ ÓÎÁÞÁÌÁ ÐÒÏÂÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ:
\begin{verbatim}
I = uint8(zeros(300,300));
I([1:50 250:end], :) = 200;
I([51:249], [1:30 270:end]) = 200;
I([101:199], [100:200]) = 100;
imshow(I)
imhist(I)
Iuniform = I + uint8(50*rand(size(I)));
imshow(Iuniform)
imhist(Iuniform)
Inorm = I + uint8(25*randn(size(I)));
imshow(Inorm)
Inorm = uint8(I + 25*randn(size(I)));
imshow(Inorm)
imhist(Inorm)
Ipoisson = imnoise(I, "poisson");
imshow(Ipoisson)
imhist(Ipoisson)
Isaltpepper = imnoise(I, "salt & pepper", 0.2);
imshow(Isaltpepper)
imhist(Isaltpepper)
Ispeckle = imnoise(I, "speckle", 0.03);
imshow(Ispeckle)
imhist(Ispeckle)
\end{verbatim}
óÒÁ×ÎÉÍ Ó ÜË×ÁÌÉÚÁÃÉÅÊ ÇÉÓÔÏÇÒÁÍÍÙ: \t{imshow(histeq(Inorm))}.
ðÏÐÒÏÂÕÅÍ ÐÒÉÍÅÎÉÔØ Ë ÉÚÏÂÒÁÖÅÎÉÀ ÇÁÍÍÁ-ËÏÒÒÅËÃÉÀ:
\begin{verbatim}
imshow(imadjust(Iuniform, [], [], 0.5))
imshow(imadjust(Iuniform, [], [], 5))
\end{verbatim}
ôÅÐÅÒØ ÐÏÐÒÏÂÕÅÍ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÑÒËÏÓÔØ ËÕÓÏÞÎÏ-ÌÉÎÅÊÎÏÊ ÆÕÎËÃÉÅÊ
$$\begin{cases}
I_{out} = 0.2 I_{in}, & I_{in} < 70,\\
I_{out} = 14 + 1.5 (I_{in}-70), & 70 \le I_{in} < 130, \\
I_{out} = 209 + 0.368*(I_{in}-130),& 130\le I_{in} < 256.
\end{cases}
$$
\begin{verbatim}
Ilinhyst = zeros(size(Inorm));
idx = find(Inorm < 70);
Ilinhyst(idx) = 0.2*Inorm(idx);
idx = find(Inorm >= 70 & Inorm < 130);
Ilinhyst(idx) = 14 + 1.5*(Inorm(idx)-70);
idx = find(Inorm >= 130);
Ilinhyst(idx) = 209 + 0.368*(Inorm(idx)-130);
Ilinhyst = uint8(Ilinhyst);
imshow(Ilinhyst);
imhist(Ilinhyst)
\end{verbatim}
ðÏÐÒÏÂÕÅÍ ÓÄÅÌÁÔØ ÓÔÕÐÅÎÞÁÔÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÑÒËÏÓÔÉ: ÎÁ ÉÚÏÂÒÁÖÅÎÉÉ \t{Inorm} ÚÁÍÅÎÉÍ ×ÓÅ
ÉÎÔÅÎÓÉ×ÎÏÓÔÉ × ÄÉÁÐÁÚÏÎÅ $[50, 150]$ ÎÁ 100:
\begin{verbatim}
Ilinhyst = Inorm;
Ilinhyst(find(Inorm >= 50 & Inorm <= 150)) = 100;
imshow(Ilinhyst)
imhist(Ilinhyst)
\end{verbatim}
\subsection{æÉÌØÔÒÁÃÉÑ ÉÚÏÂÒÁÖÅÎÉÊ}
ðÏÐÒÏÂÕÅÍ ÐÒÏÓÔÕÀ ÍÅÄÉÁÎÎÕÀ ÆÉÌØÔÒÁÃÉÀ ÎÁ ÐÒÉÍÅÒÅ ÐÁÒÙ ÉÚÏÂÒÁÖÅÎÉÊ.
\begin{verbatim}
subplot(2,2,1)
subimage(Isaltpepper)
subplot(2,2,2)
subimage(medfilt2(Isaltpepper, [5 5])))
subplot(2,2,3)
subimage(Inorm)
subplot(2,2,4)
subimage(medfilt2(Inorm, [5 5]))
\end{verbatim}
÷ÉÄÉÍ, ÞÔÏ ÍÅÄÉÁÎÎÙÊ ÆÉÌØÔÒ ×ÐÏÌÎÅ ÎÅÐÌÏÈÏ ÓÐÒÁ×ÉÌÓÑ Ó ÛÕÍÏÍ <<ÓÏÌØ-ÐÅÒÅÃ>> É ÚÎÁÞÉÔÅÌØÎÏ ÈÕÖÅ~---
Ó ÇÁÕÓÓÏ×ÙÍ ÛÕÍÏÍ.
òÁÓÓÍÏÔÒÉÍ ÐÒÉÍÅÎÅÎÉÅ ÒÁÚÌÉÞÎÙÈ ÆÉÌØÔÒÏ×. äÌÑ ÎÁÞÁÌÁ ÓÏÚÄÁÄÉÍ ÍÁÔÒÉÃÙ ÆÉÌØÔÒÏ×:
\begin{verbatim}
fgauss = fspecial("gaussian", 5, 1);
flog = fspecial("log", 5, 1);
fsobelv = fspecial("sobel");
fsobelh = rot90(fsobelv);
\end{verbatim}
é ÐÒÉÍÅÎÉÍ ÉÈ Ë ÏÒÉÇÉÎÁÌØÎÏÍÕ ÉÚÏÂÒÁÖÅÎÉÀ, \t{Isaltpepper} É \t{Inorm}:
\begin{verbatim}
imshow(imfilter(I, fgauss, "symmetric"));
imshow(imfilter(Isaltpepper, fgauss, "symmetric"));
imshow(imfilter(Inorm, fgauss, "symmetric"));
imshow(histeq(imfilter(I, flog, "symmetric")));
imshow(histeq(imfilter(Isaltpepper, flog, "symmetric")));
imshow(histeq(imfilter(Inorm, flog, "symmetric")));
\end{verbatim}
ëÁË ×ÉÄÉÔÅ, Õ ÄÉÆÆÅÒÅÎÃÉÁÌØÎÏÇÏ ÆÉÌØÔÒÁ ÏÔÓÅËÁÅÔÓÑ ÏÔÒÉÃÁÔÅÌØÎÁÑ ËÏÍÐÏÎÅÎÔÁ~--- Ô.Ë. ÉÚÏÂÒÁÖÅÎÉÑ
ÉÍÅÀÔ ÔÉÐ \t{uint8\_t}, ÏÄÎÁËÏ, ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:
\begin{verbatim}
imshow(histeq(imfilter(double(Isaltpepper), flog, "symmetric")));
imshow(histeq(imfilter(double(Inorm), flog, "symmetric")));
imshow(histeq(imfilter(double(I), flog, "symmetric")));
\end{verbatim}
Octave ÎÅÐÒÁ×ÉÌØÎÏ ÒÁÓÓÞÉÔÙ×ÁÅÔ ÚÎÁÞÅÎÉÅ ÆÉÌØÔÒÏ×, ÎÁÐÒÉÍÅÒ:
\begin{verbatim}
sum(flog(:))
ans = -0.024092
sum(fgauss(:))
ans = 1.00000
sum(fsobelv(:))
ans = 0
\end{verbatim}
õ ÄÉÆÆÅÒÅÎÃÉÁÌØÎÙÈ ÆÉÌØÔÒÏ× ÓÕÍÍÁ ÜÌÅÍÅÎÔÏ× ÄÏÌÖÎÁ ÂÙÔØ ÒÁ×ÎÁ ÎÕÌÀ (ÞÔÏÂÙ ËÏÎÓÔÁÎÔÎÙÅ ÕÒÏ×ÎÉ
ÐÒÅ×ÒÁÝÁÌÉÓØ × ÎÕÌØ), Á Õ ÕÓÒÅÄÎÑÀÝÉÈ~--- ÅÄÉÎÉÃÅ (ÞÔÏÂÙ ÓÏÈÒÁÎÑÔØ ÓÒÅÄÎÀÀ ÉÎÔÅÎÓÉ×ÎÏÓÔØ ÐÏ
ÉÚÏÂÒÁÖÅÎÉÀ). òÁÓÛÉÒÉÍ ÒÁÚÍÅÒ ÍÁÔÒÉÃÙ ÆÉÌØÔÒÁ ÌÁÐÌÁÓÉÁÎÁ ÇÁÕÓÓÉÁÎÙ, ÞÔÏÂÙ ÕÌÕÞÛÉÔØ ÐÒÉÂÌÉÖÅÎÉÅ Ë
ÎÕÌÀ:
\begin{verbatim}
flog = fspecial("log", 17, 1);
imshow(histeq(imfilter(double(I), flog, "symmetric")));
imshow(histeq(imfilter(double(Isaltpepper), flog, "symmetric")));
imshow(histeq(imfilter(double(Inorm), flog, "symmetric")));
\end{verbatim}
ôÅÐÅÒØ ÎÁ ÐÒÉÍÅÒÅ ÐÅÒ×ÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ ÍÙ ×ÉÄÉÍ, ÞÔÏ ÆÉÌØÔÒ ÒÁÂÏÔÁÅÔ ÐÒÁ×ÉÌØÎÏ.
çÏÒÉÚÏÎÔÁÌØÎÁÑ É ×ÅÒÔÉËÁÌØÎÁÑ ËÏÍÐÏÎÅÎÔÙ ÇÒÁÄÉÅÎÔÁ:
\begin{verbatim}
ih = imfilter(double(Inorm), fsobelh, "symmetric");
iv = imfilter(double(Inorm), fsobelv, "symmetric");
imshow(histeq(iv)));
imshow(histeq(ih));
grad = sqrt(ih.*ih + iv.*iv);
imshow(histeq(grad));
\end{verbatim}
åÓÌÉ ÍÙ ÐÏÐÙÔÁÅÍÓÑ ÐÒÏÄÅÌÁÔØ ÔÏ ÖÅ ÓÁÍÏÅ ÄÌÑ \t{I}, Õ×ÉÄÉÍ, ÞÔÏ \t{histeq} × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÎÅ
ÓÒÁÂÏÔÁÅÔ, É ÏÔÏÂÒÁÖÁÔØ ÐÒÉÄÅÔÓÑ ËÏÍÁÎÄÏÊ
\begin{verbatim}
imshow(grad,[min(grad(:)) max(grad(:))]);
\end{verbatim}
úÄÅÓØ \t{histeq} ÎÅ ÓÒÁÂÏÔÁÌ ÉÚ-ÚÁ ÓÌÉÛËÏÍ <<ËÒÉ×ÏÊ>> ÇÉÓÔÏÇÒÁÍÍÙ: ÐÏÄÁ×ÌÑÀÝÅÅ ÂÏÌØÛÉÎÓÔ×Ï ÐÉËÓÅÌÅÊ
ÐÒÉÈÏÄÉÔÓÑ ÎÁ ÎÕÌÅ×ÏÊ ÕÒÏ×ÅÎØ.
äÌÑ ÓÍÑÇÞÅÎÉÑ ÏÂÝÅÇÏ ËÏÎÔÒÁÓÔÁ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÉÅÍ, ÎÁÚÙ×ÁÅÍÙÊ <<ÎÅÒÅÚËÉÍ ÍÁÓËÉÒÏ×ÁÎÉÅÍ>>
(ÐÒÉÍÅÎÑÅÍÙÊ ÅÝÅ × ÆÏÔÏÇÒÁÆÉÉ ÎÁ ÆÏÔÏÜÍÕÌØÓÉÀ). äÌÑ ÜÔÏÇÏ ×ÏÓÐÏÌØÚÕÅÍÓÑ ÆÏÒÍÕÌÏÊ
$$I_{out}=N\cdot I_{in} - F(I_{in}),$$
ÇÄÅ $F$~-- ÎÅËÏÔÏÒÙÊ ÕÓÒÅÄÎÑÀÝÉÊ ÆÉÌØÔÒ (× ÏÒÉÇÉÎÁÌÅ~--- ÒÁÓÆÏËÕÓÉÒÏ×ÁÎÎÏÅ ÐÏÚÉÔÉ×ÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ).
\begin{verbatim}
imshow(2*Inorm-imfilter(Inorm, fgauss, "symmetric"));
\end{verbatim}
ðÏÓÍÏÔÒÉÍ, ËÁË ÉÚÍÅÎÉÔÓÑ ÒÁÚÍÙÔÏÅ ÉÚÏÂÒÁÖÅÎÉÅ ÐÒÉ ÎÅÒÅÚËÏÍ ÍÁÓËÉÒÏ×ÁÎÉÉ:
\begin{verbatim}
ig = imfilter(I, fgauss, "symmetric");
subplot(1,2,1)
imshow(ig)
subplot(1,2,2)
imshow(histeq(2*ig-imfilter(ig, fgauss, "symmetric")))
\end{verbatim}
ïÞÉÓÔÉÍ ×ÓÅ É ×ÅÒÎÅÍÓÑ Ë FITS-ÆÁÊÌÁÍ. úÁÇÒÕÚÉÍ ÉÚÏÂÒÁÖÅÎÉÅ É ÐÏÓÔÒÏÉÍ ÄÉÆÆÅÒÅÎÃÉÁÌØÎÙÅ ÆÉÌØÔÒÙ Ó
ÂÏÌÅÅ ËÒÕÐÎÙÍ ÑÄÒÏÍ:
\begin{verbatim}
clear
[I H] = read_fits_image('stars.fit');
imshow(histeq(I,65536));
fgauss = fspecial("gaussian", 30, 5);
flog = fspecial("log", 37, 5);
\end{verbatim}
ðÏÐÒÏÂÕÅÍ ÔÅÐÅÒØ ÐÒÉÍÅÎÉÔØ Ë ÉÚÏÂÒÁÖÅÎÉÀ ÎÅÒÅÚËÏÅ ÍÁÓËÉÒÏ×ÁÎÉÅ É ÒÁÚÌÉÞÎÙÅ ÆÉÌØÔÒÙ:
\begin{verbatim}
imshow(histeq(I-imfilter(I, fgauss, "symmetric"), 65536));
imshow(histeq(imfilter(I, fgauss, "symmetric"), 65536));
imshow(histeq(imfilter(I, flog, "symmetric"), 65536));
imshow(histeq(2*I-imfilter(I, fgauss, "symmetric"), 65536));
imshow(histeq(medfilt2(I), 65536));
imshow(histeq(I-medfilt2(I, [15 15]), 65536))
\end{verbatim}
ðÏÓÌÅÄÎÉÊ ×ÁÒÉÁÎÔ Ñ×ÌÑÅÔÓÑ ÐÅÒ×ÙÍ ÐÒÉÂÌÉÖÅÎÉÅÍ Ë ×ÙÞÉÔÁÎÉÀ ÆÏÎÁ.
ðÏÓÍÏÔÒÉÍ, ËÁË ÍÏÖÎÏ ÎÁÊÔÉ ÐÒÉÂÌÉÖÅÎÎÕÀ ÍÁÓËÕ ÄÌÑ ÐÏÉÓËÁ Ú×ÅÚÄ:
\begin{verbatim}
Imed = medfilt2(I, [3 3]);
% [3 3] is default, we can omit it here
ImedLG = imfilter(Imed, flog, "symmetric");
imshow(ImedLG, [-0.1, 0.1]);
mask = logical(zeros(size(I)));
\end{verbatim}
ôÅÐÅÒØ ÎÕÖÎÏ ÐÏÄÏÂÒÁÔØ ÐÏÄÈÏÄÑÝÉÊ ÐÏÒÏÇÏ×ÙÊ ÕÒÏ×ÅÎØ:
\begin{verbatim}
mask = logical(zeros(size(I))); mask(find(ImedLG < 0)) = 1;
imshow(mask)
mask = logical(zeros(size(I))); mask(find(ImedLG < -0.005)) = 1;
imshow(mask)
\end{verbatim}
õÖÅ ÔÁËÏÅ ÇÒÕÂÏÅ ÐÒÉÂÌÉÖÅÎÉÅ ÐÏÚ×ÏÌÉÌÏ ÏÂÎÁÒÕÖÉÔØ ÎÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï Ú×ÅÚÄ ÎÁ ÉÚÏÂÒÁÖÅÎÉÉ. åÓÌÉ
ÉÓÐÏÌØÚÏ×ÁÔØ ÂÏÌÅÅ ÔÏÞÎÙÊ (<<ÒÏÂÁÓÔÎÙÊ>>) ÍÅÔÏÄ ×ÙÄÅÌÅÎÉÑ ÆÏÎÁ (Á ÚÄÅÓØ ÆÏÎ ÄÏÓÔÁÔÏÞÎÏ ÐÅÒÅËÏÛÅÎ),
ÐÏÌÕÞÁÔÓÑ ÒÅÚÕÌØÔÁÔÙ ËÕÄÁ ÌÕÞÛÅ.
ïÔÏÂÒÁÚÉÍ ÏÒÉÇÉÎÁÌ, ÚÁÍÅÎÉ× ÎÕÌÑÍÉ ×ÓÅ ÔÏÞËÉ, ÇÄÅ ÍÁÓËÁ ÉÓÔÉÎÎÁ, Á ÚÁÔÅÍ~--- ÎÁÏÂÏÒÏÔ:
\begin{verbatim}
J=I; J(mask)=0; % hide stars
imshow(histeq(J, 65536));
J=I; J(~mask)=0; % hide background
imshow(J);
\end{verbatim}
îÁÛÁ ÇÒÕÂÁÑ ÍÁÓËÁ ÏÐÒÅÄÅÌÉÌÁ ×ÓÅ Ú×ÅÚÄÙ, Á ÔÁËÖÅ ÎÅËÏÔÏÒÏÅ ËÏÌÉÞÅÓÔ×Ï ÛÕÍÏ×, ÎÏ ÐÒÉ ÐÏÍÏÝÉ
ÍÏÒÆÏÌÏÇÉÞÅÓËÉÈ ÏÐÅÒÁÃÉÊ ÍÙ ÍÏÖÅÍ ÕÄÁÌÉÔØ ÍÅÌËÉÅ ÏÂßÅËÔÙ (ÐÒÁ×ÄÁ, ÎÅ ÆÁËÔ, ÞÔÏ ÎÅ ÐÏÔÅÒÑÅÍ ÔÁËÉÍ
ÏÂÒÁÚÏÍ ÓÌÁÂÙÅ Ú×ÅÚÄÙ; ËÒÏÍÅ ÔÏÇÏ, ÍÙ ×ÉÄÉÍ ÎÁ ÐÅÒ×ÏÍ ÉÚÏÂÒÁÖÅÎÉÉ, ÞÔÏ ÏÓÏÂÏ ÑÒËÉÅ Ú×ÅÚÄÙ
ÍÁÓËÉÒÏ×ÁÎÙ ÎÅ ÐÏÌÎÏÓÔØÀ, ÎÁÛ ÓÐÏÓÏ ÄÏÓÔÁÔÏÞÎÏ ÐÌÏÈ É ÇÏÄÉÔÓÑ ÌÉÛØ ÄÌÑ ÏÞÅÎØ ÇÒÕÂÏÊ ÁÓÔÒÏÍÅÔÒÉÉ).
\subsection{íÏÒÆÏÌÏÇÉÞÅÓËÉÅ ÏÐÅÒÁÃÉÉ, ÐÏÉÓË Ó×ÑÚÎÙÈ ÏÂÌÁÓÔÅÊ}
ðÏÐÒÏÂÕÅÍ ÐÏÄÞÉÓÔÉÔØ ÎÅÍÎÏÇÏ ÎÁÛÕ ÍÁÓËÕ.
\begin{verbatim}
imshow(imopen(mask, strel('disk', 1, 0)));
imshow(imopen(mask, strel('disk', 2, 0)));
imshow(imopen(mask, strel('disk', 3, 0))); % use this
mask = imopen(mask, strel('disk', 3, 0));
\end{verbatim}
ôÅÐÅÒØ ÍÏÖÅÍ ÁÎÁÌÏÇÉÞÎÏ ÐÒÏÓÍÏÔÒÅÔØ ÍÁÓËÉÒÏ×ÁÎÎÙÅ ÉÚÏÂÒÁÖÅÎÉÑ:
\begin{verbatim}
J=I; J(mask)=0; % hide stars
imshow(histeq(J, 65536));
J=I; J(~mask)=0; % hide background
imshow(J);
\end{verbatim}
îÏ ÎÁÍ ÉÎÔÅÒÅÓÎÅÊ ×ÙÄÅÌÉÔØ ×ÓÅ Ú×ÅÚÄÙ ÉÚ ÉÚÏÂÒÁÖÅÎÉÑ. éÓÐÏÌØÚÕÅÍ ÐÏÉÓË Ó×ÑÚÎÙÈ ÏÂÌÁÓÔÅÊ:
\begin{verbatim}
[L NUM]= bwlabel(mask, 8);
NUM
NUM = 200
imshow(L, [1 NUM])
\end{verbatim}
ëÁË ×ÉÄÉÍ, ÎÕÍÅÒÁÃÉÑ ÏÂßÅËÔÏ× ÉÄÅÔ ÓÌÅ×Á-ÎÁÐÒÁ×Ï, Ó×ÅÒÈÕ-×ÎÉÚ. þÔÏÂÙ ×ÙÄÅÌÉÔØ ËÏÎËÒÅÔÎÙÊ ÏÂßÅËÔ, ÍÙ
ÍÏÖÅÍ ÐÒÉÍÅÎÉÔØ ÍÁÓËÕ ÔÁËÏÇÏ ÔÉÐÁ:
\begin{verbatim}
J = zeros(size(I)); idx = find(L == 100); J(idx) = I(idx);
imshow(J);
\end{verbatim}
íÙ ×ÙÄÅÌÉÌÉ ÏÄÎÕ Ú×ÅÚÄÕ. íÏÖÅÍ ×ÙÄÅÌÉÔØ ÔÏÎËÕÀ ÐÏÌÏÓËÕ ÆÏÎÁ ×ÏËÒÕÇ ÎÅÅ:
\begin{verbatim}
mask100 = logical(zeros(size(I)));
mask100(idx) = 1;
mask100 = xor(imdilate(mask100, strel('disk',2,0)), mask100);
imshow(mask100);
\end{verbatim}
é ÐÏÓÞÉÔÁÔØ ÐÏ ÎÅÊ ÓÔÁÔÉÓÔÉËÕ:
\begin{verbatim}
bg100 = I(mask100);
mean(bg100)
ans = 2063.1
std(bg100)
ans = 61.711
\end{verbatim}
îÏ ÄÌÑ ×ÙÞÉÓÌÅÎÉÑ ÐÏÌÏÖÅÎÉÊ ÃÅÎÔÒÏÉÄÏ× ÕÄÏÂÎÅÊ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇÕÀ ÆÕÎËÃÉÀ ÐÏÉÓËÁ Ó×ÑÚÎÙÈ ÏÂÌÁÓÔÅÊ:
\t{bwconncomp}.
\begin{verbatim}
K = bwconncomp(mask, 8);
p = regionprops(K);
\end{verbatim}
ðÏ ÕÍÏÌÞÁÎÉÀ × \t{p} (ÜÔÏ~--- ÍÁÓÓÉ× ÓÔÒÕËÔÕÒ) ÓÏÄÅÒÖÁÔÓÑ ÐÏÌÑ \t{Area} (ÐÌÏÝÁÄØ ÏÂßÅËÔÁ),
\t{BoundingBox} (ËÏÏÒÄÉÎÁÔÙ ÂÏËÓÁ, × ËÏÔÏÒÏÍ ÓÏÄÅÒÖÉÔÓÑ ÏÂßÅËÔ: ÌÅ×ÙÊ ×ÅÒÈÎÉÊ ÕÇÏÌ É ÒÁÚÍÅÒ) É
\t{Centroid} (ÇÅÏÍÅÔÒÉÞÅÓËÉÊ ÃÅÎÔÒ ÏÂßÅËÔÁ). ðÏ ÐÅÒ×ÙÍ Ä×ÕÍ ÐÁÒÁÍÅÔÒÁÍ ÍÙ ÍÏÖÅÍ ÏÔÆÉÌØÔÒÏ×ÁÔØ
ÓÌÉÛËÏÍ ÍÅÌËÉÅ É ÓÌÉÛËÏÍ ËÒÕÐÎÙÅ ÏÂßÅËÔÙ, Á ÔÁËÖÅ ÏÂßÅËÔÙ, Õ ËÏÔÏÒÙÈ ÏÔÎÏÛÅÎÉÅ ÛÉÒÉÎÙ Ë ×ÙÓÏÔÅ
ÓÉÌØÎÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÅÄÉÎÉÃÙ (Ô.Å. ÔÁÍ ×ÎÕÔÒÉ~--- Ñ×ÎÏ ÎÅ ËÒÕÇ). ôÒÅÔÉÊ ÐÁÒÁÍÅÔÒ ÐÏÚ×ÏÌÑÅÔ ÓÕÄÉÔØ
Ï ÐÒÉÍÅÒÎÏÍ ÒÁÓÐÏÌÏÖÅÎÉÉ ÃÅÎÔÒÁ ÏÂßÅËÔÁ (ÂÏÌÅÅ ÔÏÞÎÏ, ËÏÎÅÞÎÏ, ÍÙ ÍÏÖÅÍ ×ÙÞÉÓÌÉÔØ ÅÇÏ ÌÉÛØ ×ÚÑ×
ÄÁÎÎÙÅ Ó ÏÒÉÇÉÎÁÌØÎÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ, ×ÙÞÔÑ ÆÏÎ É ÐÏÓÞÉÔÁ× ÔÏÞÎÙÊ ÃÅÎÔÒÏÉÄ).
íÏÖÎÏ ÎÁÒÉÓÏ×ÁÔØ ÎÅÓËÏÌØËÏ ÂÏËÓÏ×:
\begin{verbatim}
rectangle('Position', p(1).BoundingBox, 'EdgeColor','g','LineWidth',2)
rectangle('Position', p(3).BoundingBox, 'EdgeColor','g','LineWidth',2)
rectangle('Position', p(100).BoundingBox, 'EdgeColor','g','LineWidth',2)
\end{verbatim}
\begin{verbatim}
centroids = cat(1, p.Centroid);
plot(centroids(:,1), centroids(:,2), 'ko');
\end{verbatim}
ôÅÐÅÒØ ÓÒÁ×ÎÉÍ ËÏÏÒÄÉÎÁÔÙ ÃÅÎÔÒÏÉÄÁ ÉÚÏÂÒÁÖÅÎÉÑ Ú×ÅÚÄÙ Ó ËÏÏÒÄÉÎÁÔÁÍÉ ÃÅÎÔÒÏÉÄÁ ÍÁÓËÉ. ïÂÒÁÔÉÔÅ
×ÎÉÍÁÎÉÅ, ÞÔÏ \t{BoundingBox} ÉÍÅÅÔ ËÏÏÒÄÉÎÁÔÙ <<Ó ÐÏÌÏ×ÉÎËÁÍÉ>>:
\begin{verbatim}
p(100).BoundingBox
502.500 710.500 14.000 14.000
imshow(mask100);
rectangle('Position', p(100).BoundingBox, 'EdgeColor','g','LineWidth',2)
\end{verbatim}
üÔÏ Ó×ÑÚÁÎÏ Ó ÔÅÍ, ÞÔÏ ÐÒÉ ÏÔÏÂÒÁÖÅÎÉÉ ÉÚÏÂÒÁÖÅÎÉÊ ÃÅÌÙÍ ËÏÏÒÄÉÎÁÔÁÍ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÃÅÎÔÒ ÐÉËÓÅÌÑ.
ëÏÎÔÕÒ, ÏÐÉÓÙ×ÁÀÝÉÊ ÎÁÛÕ ÏÂÌÁÓÔØ ÉÎÔÅÒÅÓÁ, ÎÅ ÄÏÌÖÅÎ ÐÅÒÅÓÅËÁÔØ ÐÉËÓÅÌÉ, ÉÚ-ÚÁ ÜÔÏÇÏ ËÏÏÒÄÉÎÁÔÙ ÅÇÏ
ÌÅ×ÏÇÏ ÕÇÌÁ ÎÁ 0.5\,ÐÉËÓÅÌÑ ÍÅÎØÛÅ, Á ÛÉÒÉÎÁ~--- ÎÁ 1\,ÐÉËÓÅÌØ ÂÏÌØÛÅ.
óÌÅÄÏ×ÁÔÅÌØÎÏ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÌÕÞÉÔØ ÞÁÓÔØ ÉÚÏÂÒÁÖÅÎÉÑ, ÓÏÄÅÒÖÁÝÕÀ ÔÏÌØËÏ ÐÉËÓÅÌÉ ÚÏÎÙ ÉÎÔÅÒÅÓÁ,
ÎÁÍ ÎÕÖÎÏ ÂÕÄÅÔ ÓÄÅÌÁÔØ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ:
\begin{verbatim}
Bstart = p(100).BoundingBox(1:2) + 0.5;
Bsize = p(100).BoundingBox(3:4) - 1;
rectangle('Position', [Bstart Bsize], 'EdgeColor','r','LineWidth',2);
\end{verbatim}
ôÅÐÅÒØ ÎÁÛ ÂÏËÓ ×ËÌÀÞÁÅÔ ×ÓÅ ÐÉËÓÅÌÉ ÉÚÏÂÒÁÖÅÎÉÑ Ú×ÅÚÄÙ. ÷ÙÞÉÓÌÉÍ ÓÕÍÍÁÒÎÙÊ ÐÏÔÏË É ÃÅÎÔÒÏÉÄ:
\begin{verbatim}
bg = mean(bg100); % mean background
[y x] = ind2sub(size(I), idx);
% coordinates of pixels in mask of 100th star
M = sum(I(idx)) - numel(idx)*bg
% energy in circle
M = 55148.54545
xc=0; yc=0; for n=1:numel(x); i=I(idx(n))-bg; xc+=i*x(n); yc+=i*y(n);
printf("%d(%d,%d)\n",i,x(n),y(n)); endfor; xc/=M; yc/=M;
xc
% X centroid position
xc = 509.36
yc % Y centroid position
yc = 718.41
p(100).Centroid
% centroid by mask
ans =
509.63 717.57
imshow(histeq(I, 65536)); % take a look at real image
% real centroid:
rectangle('Position', [xc-1 yc-1 2 2], 'EdgeColor','g','LineWidth',2,
"Curvature", 1)
% centroid of mask:
rectangle('Position', [p(100).Centroid-1 2 2], 'EdgeColor','r','LineWidth',2,
"Curvature", 1)
\end{verbatim}
íÙ ×ÉÄÉÍ, ÞÔÏ ÎÁÓÔÏÑÝÉÊ ÃÅÎÔÒ ÔÑÖÅÓÔÉ ÉÚÏÂÒÁÖÅÎÉÑ Ú×ÅÚÄÙ ÄÏÓÔÁÔÏÞÎÏ ÓÉÌØÎÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ
ÇÅÏÍÅÔÒÉÞÅÓËÏÇÏ ÃÅÎÔÒÁ ÍÁÓËÉ. ïÓÏÂÅÎÎÏ ÓÉÌØÎÏ ÜÔÏ ÐÒÏÑ×ÌÑÅÔÓÑ × ÓÌÕÞÁÅ ÄÅÆÏÒÍÁÃÉÊ ÉÚÏÂÒÁÖÅÎÉÑ
(×ÓÌÅÄÓÔ×ÉÅ ÓÄ×ÉÇÁ ÉÚÏÂÒÁÖÅÎÉÑ, ËÏÍÙ ÉÌÉ ÐÒÏÞÉÈ ÁÂÅÒÒÁÃÉÊ).
÷ÙÞÉÓÌÑÔØ ÂÏÌØÛÏÅ ËÏÌÉÞÅÓÔ×Ï ÈÁÒÁËÔÅÒÉÓÔÉË ÕÄÏÂÎÅÊ ÉÎÁÞÅ. îÁÐÒÉÍÅÒ, ÔÁË:
\begin{verbatim}
regioninfo = regionprops(L,I,'MajorAxisLength','MinorAxisLength','PixelIdxList',
'PixelValues');
\end{verbatim}
ÍÙ ÐÏÌÕÞÉÍ ÚÎÁÞÅÎÉÑ ÂÏÌØÛÏÊ É ÍÁÌÏÊ ÐÏÌÕÏÓÅÊ ÜÌÌÉÐÓÁ Ó ÉÄÅÎÔÉÞÎÙÍÉ ÎÁÛÅÊ ÆÉÇÕÒÏÊ ÍÏÍÅÎÔÁÍÉ (ÞÔÏ
ÐÏÚ×ÏÌÉÔ ÓÕÄÉÔØ Ï <<ËÒÕÇÌÏÓÔÉ>> ËÁÖÄÏÇÏ ÏÂßÅËÔÁ), ÓÐÉÓÏË ÉÎÄÅËÓÏ× ÐÉËÓÅÌÅÊ É ÓÐÉÓÏË ÉÎÔÅÎÓÉ×ÎÏÓÔÅÊ
ÐÉËÓÅÌÅÊ ÎÁ ÉÚÏÂÒÁÖÅÎÉÉ. åÓÌÉ ÂÙ ÆÏÎ Õ ÎÁÛÅÇÏ ÏÂßÅËÔÁ ÂÙÌ ÉÄÅÁÌØÎÏ ÇÌÁÄËÉÍ, ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÄÏÂÁ×ÉÔØ
ÅÝÅ Ó×ÏÊÓÔ×Ï \t{'WeightedCentroid'}, ÞÔÏÂÙ ÓÒÁÚÕ ÐÏÌÕÞÉÔØ ËÏÏÒÄÉÎÁÔÙ ÃÅÎÔÒÁ ËÁÖÄÏÊ Ú×ÅÚÄÙ, ÎÏ, Õ×Ù,
ÄÌÑ ËÁÖÄÏÊ Ú×ÅÚÄÙ ÐÒÉÄÅÔÓÑ ÓÞÉÔÁÔØ ÆÏÎ ÁÎÁÌÏÇÉÞÎÏ ×ÙÛÅÓËÁÚÁÎÎÏÍÕ~--- ÞÅÒÅÚ ËÏÌØÃÁ. äÌÑ ÔÅÓÎÙÈ ÐÏÌÅÊ
ÐÏÔÒÅÂÕÅÔÓÑ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÚÏÎÁ ×ÏËÒÕÇ Ú×ÅÚÄÙ Ó×ÏÂÏÄÎÁ ÏÔ ÄÒÕÇÏÊ Ú×ÅÚÄÙ (ÐÒÉ ÐÏÍÏÝÉ ×ÓÅ ÔÅÈ ÖÅ
ÍÏÒÆÏÌÏÇÉÞÅÓËÉÈ ÏÐÅÒÁÃÉÊ).
áÒÇÕÍÅÎÔÏÍ \t{regionprops} ÍÏÖÅÔ ×ÙÓÔÕÐÁÔØ É ÓÔÒÕËÔÕÒÁ, ÐÏÌÕÞÅÎÎÁÑ ÐÒÉ ÐÏÍÏÝÉ \t{bwconncomp}.
ôÅÐÅÒØ ÎÁÊÄÅÍ ×ÓÅ ÏÂßÅËÔÙ ÂÏÌÅÅ-ÍÅÎÅÅ ËÒÕÇÌÏÊ ÆÏÒÍÙ:
\begin{verbatim}
roundness = [regioninfo.MajorAxisLength] ./ [regioninfo.MinorAxisLength];
staridx = find(roundness < 1.1 & roundness > 0.9);
% indexes of "stars"
imshow(ismember(L, staridx)); % show filtered image
\end{verbatim}
ôÅÐÅÒØ, ÅÓÌÉ ÐÒÏÊÔÉÓØ ÉÔÅÒÁÔÉ×ÎÏ ÐÏ ËÁÖÄÏÍÕ ÏÂßÅËÔÕ Ó ÎÏÍÅÒÏÍ \t{staridx}, ÍÏÖÎÏ ÐÏÓÞÉÔÁÔØ ÄÌÑ ÎÅÇÏ
ÉÎÄÉ×ÉÄÕÁÌØÎÕÀ ÍÁÓËÕ ÆÏÎÁ (ËÁË ÂÙÌÏ ÐÏËÁÚÁÎÏ ×ÙÛÅ~--- ÞÅÒÅÚ ÄÉÌÁÔÁÃÉÀ), ÏÐÒÅÄÅÌÉÔØ ÔÁËÉÍ ÏÂÒÁÚÏÍ
ÕÒÏ×ÅÎØ ÆÏÎÁ É ÉÓÐÏÌØÚÏ×ÁÔØ ÅÇÏ ÄÌÑ ×ÙÞÉÓÌÅÎÉÑ ÐÒÏÞÉÈ ÐÁÒÁÍÅÔÒÏ×: ÐÏÌÎÏÊ ÉÎÔÅÎÓÉ×ÎÏÓÔÉ ×ÎÕÔÒÉ ÍÁÓËÉ
É ËÏÏÒÄÉÎÁÔ ÃÅÎÔÒÏÉÄÁ.
åÓÌÉ ÍÙ ÄÏÂÁ×ÉÍ × \t{regionprops} Ó×ÏÊÓÔ×Ï \t{'Area'}, Õ ÎÁÓ ÐÏÑ×ÉÔÓÑ ×ÏÚÍÏÖÎÏÓÔØ ÄÏ ÐÏÌÕÞÅÎÉÑ
ÎÏÍÅÒÏ× ÏÂßÅËÔÏ×, ×ÏÚÍÏÖÎÏ Ñ×ÌÑÀÝÉÈÓÑ Ú×ÅÚÄÁÍÉ, ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÉÈ ÐÏ ÕÂÙ×ÁÎÉÀ ÐÌÏÝÁÄÉ (ÓËÏÒÅÊ
×ÓÅÇÏ~--- É ÐÏ ÕÂÙ×ÁÎÉÀ ÑÒËÏÓÔÉ):
\begin{verbatim}
[~, i] = sort([regioninfo(staridx).Area], 'descend'); % get sorted indexes
staridxsorted = staridx(i);
\end{verbatim}
é ÍÏÖÅÍ ÏÔÏÂÒÁÚÉÔØ ÏËÒÅÓÔÎÏÓÔÉ ÐÅÒ×ÙÈ 10 ÐÏ ÐÌÏÝÁÄÉ ÍÁÓËÉ:
\begin{verbatim}
imshow(histeq(I, 65536));
for i=1:10;
c = hsv2rgb([i/10. 1 1]);
rectangle('Position', p(staridxsorted(i)).BoundingBox, 'EdgeColor', c,
'LineWidth',2);
endfor
for i = 1:10; ltxt{i} = sprintf("star #%d", i); endfor
legend(ltxt)
\end{verbatim}
÷ÉÄÉÍ, ÞÔÏ Õ ÑÒËÉÈ Ú×ÅÚÄ ÍÁÓËÁ ÐÏÔÅÒÑÌÁ ÐÒÉÌÉÞÎÕÀ ÞÁÓÔØ ËÒÙÌØÅ×, Á ÔÁËÖÅ ÏÄÎÁ ÄÏÓÔÁÔÏÞÎÏ ÑÒËÁÑ
Ú×ÅÚÄÁ ÂÙÌÁ ÐÒÏÐÕÝÅÎÁ.
âÏÌÅÅ ÎÁÄÅÖÎÙÍ ÂÕÄÅÔ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏ ÚÎÁÞÅÎÉÀ ÉÎÔÅÎÓÉ×ÎÏÓÔÉ.
\section{ðÅÒ×ÉÞÎÁÑ ÏÂÒÁÂÏÔËÁ ÓÎÉÍËÏ×}
îÁÉÂÏÌÅÅ ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÍÉ Ó×ÅÔÏÐÒÉÅÍÎÉËÁÍÉ × ÁÓÔÒÏÆÉÚÉËÅ ÏÐÔÉÞÅÓËÏÇÏ ÄÉÁÐÁÚÏÎÁ Ñ×ÌÑÀÔÓÑ
ðúó-ÍÁÔÒÉÃÙ. óÒÅÄÉ ÐÒÏÞÉÈ Ó×ÅÔÏÐÒÉÅÍÎÉËÏ× ÜÔÏÇÏ ÄÉÁÐÁÚÏÎÁ ÏÎÉ ÉÍÅÀÔ ÎÁÉÌÕÞÛÉÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ.
ïÄÎÁËÏ, ÅÓÔØ Õ ÎÉÈ É ÎÅÄÏÓÔÁÔËÉ: × ÔÏÎËÉÈ ÐÏÄÌÏÖËÁÈ ×ÏÚÍÏÖÎÁ ÉÎÔÅÒÆÅÒÅÎÃÉÑ (ÏÓÏÂÅÎÎÏ ÂÌÉÖÅ Ë
éë-ÄÉÁÐÁÚÏÎÕ), ÐÒÉ×ÏÄÑÝÁÑ Ë ×ÏÚÎÉËÎÏ×ÅÎÉÑ <<ÆÒÉÎÇÏ×>>; Á ÎÁÌÉÞÉÅ ÈÏÔÑ ÂÙ ÏÄÎÏÇÏ ÏÞÅÎØ ÑÒËÏÇÏ
ÉÓÔÏÞÎÉËÁ ÐÒÉ×ÏÄÉÔ Ë <<ÒÁÓÔÅËÁÎÉÀ ÚÁÒÑÄÁ>>, ÕÓÕÇÕÂÌÑÀÝÅÍÕÓÑ ÐÒÉ ÓÞÉÔÙ×ÁÎÉÉ ÉÚÏÂÒÁÖÅÎÉÑ.
ëíïð-Ó×ÅÔÏÐÒÉÅÍÎÉËÉ × ÚÎÁÞÉÔÅÌØÎÏÊ ÍÅÒÅ ÉÚÂÁ×ÌÅÎÙ ÏÔ ÐÒÏÂÌÅÍ ÒÁÓÔÅËÁÎÉÑ ÚÁÒÑÄÁ, ÎÏ × ÎÉÈ ÅÓÔØ
ÄÒÕÇÁÑ ÐÒÏÂÌÅÍÁ: ËÁÖÄÙÊ ÐÉËÓÅÌØ ÐÏ ÓÕÔÉ ÓÎÁÂÖÅÎ ÓÏÂÓÔ×ÅÎÎÙÍ ÕÓÉÌÉÔÅÌÅÍ, × ÒÅÚÕÌØÔÁÔÅ ÔÏÞÎÁÑ
ÆÏÔÏÍÅÔÒÉÑ Ó ëíïð ÐÒÅ×ÒÁÝÁÅÔÓÑ × ÓÐÌÏÛÎÏÊ ÁÄ!
ðÒÏÃÅÓÓ ÐÏÌÕÞÅÎÉÑ ÉÚÏÂÒÁÖÅÎÉÊ ÎÁ ðúó ÍÏÖÎÏ × ÕÐÒÏÝÅÎÎÏÍ ×ÉÄÅ Ó×ÅÓÔÉ Ë ÆÏÒÍÕÌÅ:
$$ ADU_{x,y}= \gamma F_{x,y}(e_{x,y} + D_{x,y})T + B_{x,y} + R,$$
(ÚÄÅÓØ ÏÐÕÝÅÎ ÐÒÏÃÅÓÓ ÄÉÓËÒÅÔÉÚÁÃÉÉ, ÒÁÓÔÅËÁÎÉÑ ÚÁÒÑÄÁ É Ô.Ð.), ÇÄÅ $ADU$~-- ÏÔÓÞÅÔÙ, ÓÞÉÔÁÎÎÙÅ Ó
ÐÉËÓÅÌÑ Ó ËÏÏÒÄÉÎÁÔÁÍÉ $(x,y)$; $\gamma$~-- <<gain>>, ËÏÜÆÆÉÃÉÅÎÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÆÏÔÏÜÌÅËÔÒÏÎÏ× ×
$ADU$ (ÚÁ×ÉÓÉÔ ÏÔ ÄÌÉÎÙ ×ÏÌÎÙ ÉÚÌÕÞÅÎÉÑ); $F$~-- ÐÏÇÌÏÝÅÎÉÅ ÉÚÌÕÞÅÎÉÑ ×ÓÌÅÄÓÔ×ÉÅ ÎÅÉÄÅÁÌØÎÏÓÔÉ
ÏÐÔÉÞÅÓËÏÊ ÓÉÓÔÅÍÙ (ËÏÍÐÅÎÓÉÒÕÅÔÓÑ ÄÅÌÅÎÉÅÍ ÎÁ <<ÐÌÏÓËÉÅ ÐÏÌÑ>>); $e$~-- ËÏÌÉÞÅÓÔ×Ï ÆÏÔÏÜÌÅËÔÒÏÎÏ×,
×ÏÚÎÉËÛÉÈ ÐÒÉ ÐÏÐÁÄÁÎÉÉ Ë×ÁÎÔÁ × ÄÁÎÎÕÀ ÑÞÅÊËÕ (ÚÁ×ÉÓÉÔ ÏÔ ÄÌÉÎÙ ×ÏÌÎÙ), ÏÎÏ ÚÁÛÕÍÌÑÅÔÓÑ ÍÎÏÖÅÓÔ×ÏÍ
ÆÁËÔÏÒÏ×: ÆÏÔÏÎÎÙÍ ÛÕÍÏÍ, ÔÕÒÂÕÌÅÎÔÎÏÓÔØÀ ÁÔÍÏÓÆÅÒÙ É Ô.Ä., É Ô.Ð.; $D$~--
<<ÔÅÍÎÏ×ÏÊ ÔÏË>>, ÏÐÒÅÄÅÌÑÀÝÉÊÓÑ ÜÌÅËÔÒÏÎÁÍÉ, ×ÏÚÎÉËÁÀÝÉÍÉ × ÒÅÚÕÌØÔÁÔÅ ÔÅÐÌÏ×ÙÈ ÐÒÏÃÅÓÓÏ× × ÔÅÌÅ
ÐÏÌÕÐÒÏ×ÏÄÎÉËÁ; $B$~-- <<bias>>, ÎÁÞÁÌØÎÏÅ ÓÍÅÝÅÎÉÅ (ÄÁÖÅ ÐÒÉ ÎÕÌÅ×ÏÊ ÜËÓÐÏÚÉÃÉÉ~--- ÓÏÂÓÔ×ÅÎÎÏ,
ÔÁË ËÁÄÒÙ <<bias>> É ÐÏÌÕÞÁÀÔ) ÄÌÑ ÕÓÔÒÁÎÅÎÉÑ ÎÅÌÉÎÅÊÎÏÓÔÉ; $T$~-- ×ÒÅÍÑ ÎÁËÏÐÌÅÎÉÑ ÓÉÇÎÁÌÁ
(ÜËÓÐÏÚÉÃÉÑ); $R$~-- ÛÕÍ ÓÞÉÔÙ×ÁÎÉÑ.
éÚÂÁ×ÉÔØÓÑ ÏÔ ÛÕÍÁ ÓÞÉÔÙ×ÁÎÉÑ ÎÅ×ÏÚÍÏÖÎÏ, ÏÄÎÁËÏ, ËÁË ÍÙ ÐÏÍÎÉÍ, ÅÓÌÉ ÕÓÒÅÄÎÉÔØ $N$~ËÁÄÒÏ×, ÔÏ
$R$~ÕÍÅÎØÛÉÔÓÑ × $\sqrt{N}$~ÒÁÚ. ëÒÏÍÅ ÔÏÇÏ, ÞÅÍ ÂÏÌØÛÅ ÜËÓÐÏÚÉÃÉÑ, ÔÅÍ ÂÏÌØÛÉÍ ÂÕÄÅÔ ×ËÌÁÄ ÐÒÏÞÉÈ
ÛÕÍÏ×. ïÄÎÁËÏ, ÐÒÉ ÍÁÌÙÈ ÜËÓÐÏÚÉÃÉÑÈ ÍÏÖÅÔ ÐÒÏÑ×ÌÑÔØÓÑ <<ÜÆÆÅËÔ ÚÁÔ×ÏÒÁ>>, ×ÙÚ×ÁÎÎÙÊ ÔÅÍ, ÞÔÏ ×ÒÅÍÑ
ÏÔËÒÙ×ÁÎÉÑ\slash ÚÁËÒÙ×ÁÎÉÑ ÚÁÔ×ÏÒÁ ËÏÎÅÞÎÏ.
þÔÏÂÙ ÓËÏÒÒÅËÔÉÒÏ×ÁÔØ ÉÎÔÅÎÓÉ×ÎÏÓÔØ ÎÁ ÕÒÏ×ÅÎØ ÓÍÅÝÅÎÉÑ, ÍÙ ÍÏÖÅÍ ÓÄÅÌÁÔØ ËÁË ÍÏÖÎÏ ÂÏÌØÛÅ ËÁÄÒÏ× Ó
ÎÕÌÅ×ÏÊ ÜËÓÐÏÚÉÃÉÅÊ (<<bias>>), ÐÏÌÕÞÉÔØ ÍÅÄÉÁÎÕ ÓÔÏÐËÉ ÉÚÏÂÒÁÖÅÎÉÊ É ×ÙÞÅÓÔØ ÉÚ ÉÚÏÂÒÁÖÅÎÉÑ. ðÒÉ
ÜÔÏÍ ÛÕÍ bias'Á ÔÁËÖÅ ÂÕÄÅÔ ÕÍÅÎØÛÅÎ × $\sqrt{N}$~ÒÁÚ.
äÌÑ ËÏÒÒÅËÃÉÉ ÎÁ ÔÅÐÌÏ×ÏÊ ÛÕÍ ÎÁÍ ÎÅÏÂÈÏÄÉÍÏ ÎÁËÏÐÉÔØ ËÁË ÍÏÖÎÏ ÂÏÌØÛÅ <<ÄÁÒËÏ×>> (× ÉÄÅÁÌÅ ÉÈ
ÜËÓÐÏÚÉÃÉÑ ÄÏÌÖÎÁ ÂÙÔØ ÔÁËÏÊ ÖÅ, ËÁË ÜËÓÐÏÚÉÃÉÑ ËÁÄÒÁ ÄÁÎÎÙÈ, Á ÕÓÌÏ×ÉÑ ÄÏÌÖÎÙ ÂÙÔØ ÁÂÓÏÌÀÔÎÏ
ÔÁËÉÍÉ ÖÅ: ÔÅÍÐÅÒÁÔÕÒÁ ÞÉÐÁ, ÏËÒÕÖÁÀÝÅÊ ÓÒÅÄÙ É Ô.Ä., É Ô.Ð.). ðÒÉ ÚÁËÒÙÔÏÍ ÚÁÔ×ÏÒÅ ÍÙ ÐÏÌÕÞÉÍ:
$$ ADU_{x,y}= \gamma D_{x,y}T + B_{x,y} + R,$$
Ô.Å. <<Á×ÔÏÍÁÔÉÞÅÓËÉ>> ÓÀÄÁ ÖÅ ×ËÌÀÞÅÎ ÕÒÏ×ÅÎØ ÓÍÅÝÅÎÉÑ. óÌÅÄÏ×ÁÔÅÌØÎÏ, ÅÓÌÉ ÎÁÛÉ <<ÄÁÒËÉ>> ÉÍÅÀÔ
ÔÕ ÖÅ ÓÁÍÕÀ ÜËÓÐÏÚÉÃÉÀ, ÞÔÏ É ÏÓÎÏ×ÎÏÊ ÎÁÕÞÎÙÊ ËÁÄÒ, ÔÏ ÄÌÑ ÕÄÁÌÅÎÉÑ ÔÅÐÌÏ×ÙÈ ÛÕÍÏ× ÄÏÓÔÁÔÏÞÎÏ
×ÙÞÅÓÔØ ÍÅÄÉÁÎÎÏÅ ÕÓÒÅÄÎÅÎÉÅ ÓÔÏÐËÉ <<ÄÁÒËÏ×>> ÉÚ ÎÁÛÅÇÏ ËÁÄÒÁ. ïÄÎÁËÏ, ÎÅ ×ÓÅÇÄÁ ÜÔÏ ×ÏÚÍÏÖÎÏ:
ÓËÁÖÅÍ, ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÓÐÅËÔÒÁ ×ÙÓÏËÏÇÏ ÒÁÚÒÅÛÅÎÉÑ ÜËÓÐÏÚÉÃÉÑ ÍÏÖÅÔ ÄÌÉÔØÓÑ ÎÅÓËÏÌØËÏ ÞÁÓÏ×!
åÓÔÅÓÔ×ÅÎÎÏ, ÍÙ ÎÅ ÍÏÖÅÍ ÐÏÌÕÞÉÔØ ÄÁÖÅ ÄÅÓÑÔËÁ ÔÅÍÎÏ×ÙÈ ËÁÄÒÏ× Ó ÔÁËÏÊ ÜËÓÐÏÚÉÃÉÅÊ (Ô.Ë. É ÕÓÌÏ×ÉÑ
ÐÏÍÅÎÑÔØÓÑ ÕÓÐÅÀÔ, É ÎÁÞÎÅÔÓÑ ÎÏ×ÁÑ ÎÏÞØ). ÷ ÐÏÄÏÂÎÙÈ ÓÌÕÞÁÑÈ ÐÒÉÂÅÇÁÀÔ Ë ÈÉÔÒÏÓÔÉ: ÔÅÍÎÏ×ÏÊ ÔÏË
ÐÒÏÐÏÒÃÉÏÎÁÌÅÎ ×ÒÅÍÅÎÉ ÜËÓÐÏÚÉÃÉÉ. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÎÅÓËÏÌØËÏ ÓÅÒÉÊ ËÏÒÏÔËÉÈ
ÜËÓÐÏÚÉÃÉÊ (ÓËÁÖÅÍ, ÏÄÎÁ, ÐÑÔØ, ÄÅÓÑÔØ É Ä×ÁÄÃÁÔØ ÍÉÎÕÔ) × ÔÅÞÅÎÉÅ ÄÎÑ, Á ÚÁÔÅÍ ÜËÓÔÒÁÐÏÌÉÒÏ×ÁÔØ ÉÈ.
÷ÏÔ × ÜÔÏÍ ÓÌÕÞÁÅ ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÔÁËÏÇÏ <<ÉÓËÕÓÓÔ×ÅÎÎÏÇÏ ÄÁÒËÁ>> ÎÅÏÂÈÏÄÉÍÏ ÂÕÄÅÔ, ÐÏÍÉÍÏ ×ÓÅÈ
ÏÓÔÁÌØÎÙÈ ËÁÄÒÏ×, ÓÎÉÍÁÔØ ÅÝÅ É bias'Ù. äÌÑ ËÁÖÄÏÊ ÜËÓÐÏÚÉÃÉÉ~$T$ ÍÙ ×ÙÞÉÓÌÑÅÍ ÔÅÍÎÏ×ÏÊ ÔÏË ËÁË
$D_T=M(D_{Ti})-M(B_i)$, ÇÄÅ $M$~-- ÍÅÄÉÁÎÁ. ðÒÉ ÐÏÍÏÝÉ ÌÉÎÅÊÎÏÊ ÜËÓÔÒÁÐÏÌÑÃÉÉ ÍÙ ÐÏÌÕÞÁÅÍ
ÚÎÁÞÅÎÉÅ~$D$ ÄÌÑ ÚÁÄÁÎÎÏÊ ÜËÓÐÏÚÉÃÉÉ. îÏ Ô.Ë. ÜÔÏ ÚÎÁÞÅÎÉÅ ÕÖÅ ÉÚÂÁ×ÌÅÎÏ ÏÔ ÓÍÅÝÅÎÉÑ, ÄÌÑ ËÏÒÒÅËÃÉÉ
ÎÁÍ ÎÅÏÂÈÏÄÉÍÏ ÂÕÄÅÔ ÉÚ ÉÚÏÂÒÁÖÅÎÉÑ ×ÙÞÅÓÔØ ÎÅ ÔÏÌØËÏ~$D$, ÎÏ É~$B$!
üÔÏ~--- ÅÄÉÎÓÔ×ÅÎÎÙÊ ÓÌÕÞÁÊ, ËÏÇÄÁ ÎÁÍ ÎÅÏÂÈÏÄÉÍÏ ÂÕÄÅÔ ÐÏÌÕÞÉÔØ É ÓÔÏÐËÕ ËÁÄÒÏ× ÓÍÅÝÅÎÉÑ (ËÁË
ÇÏ×ÏÒÉÌÏÓØ ×ÙÛÅ, ÅÓÌÉ <<ÔÅÍÎÏ×ÙÅ>> ÓÎÑÔÙ Ó ÔÏÊ ÖÅ ÜËÓÐÏÚÉÃÉÅÊ, ÞÔÏ É ÏÓÎÏ×ÎÏÊ ËÁÄÒ, ÔÏ ÓÍÅÝÅÎÉÅ
Á×ÔÏÍÁÔÉÞÅÓËÉ ËÏÒÒÅËÔÉÒÕÅÔÓÑ ÐÒÉ ×ÙÞÉÔÁÎÉÉ <<ÔÅÍÎÏ×ÙÈ>> ÉÚ <<ÏÂßÅËÔÁ>>).
úÎÁÞÉÔÅÌØÎÏ ÂÏÌÅÅ ÓÌÏÖÎÏÊ Ñ×ÌÑÅÔÓÑ ËÏÒÒÅËÃÉÑ ÎÁ ÎÅÏÄÎÏÒÏÄÎÏÓÔÉ ÏÐÔÉÞÅÓËÏÊ ÓÉÓÔÅÍÙ (×ÐÌÏÔØ ÄÏ
ÐÙÌÉÎÏË ÎÁ ÆÉÌØÔÒÁÈ É ÐÒÏÞÉÈ ÏÐÔÉÞÅÓËÉÈ ÐÏ×ÅÒÈÎÏÓÔÑÈ), $F$. ôÅÒÍÉÎ <<ÐÌÏÓËÏÓÔØ>> × ÄÁÎÎÏÍ ÓÌÕÞÁÅ
ÎÏÓÉÔ Ä×ÏÑËÉÊ ÓÍÙÓÌ: ÄÌÑ ÐÒÑÍÙÈ ÓÎÉÍËÏ× ÜÔÏ~--- ÎÅÏÄÎÏÒÏÄÎÏÓÔØ ÏÓ×ÅÝÅÎÎÏÓÔÉ ÐÏ ËÁÄÒÕ. äÌÑ
ÓÐÅËÔÒÁÌØÎÙÈ~--- ÅÝÅ É ÎÅÏÄÎÏÒÏÄÎÏÓÔØ ËÒÉ×ÏÊ ÓÐÅËÔÒÁÌØÎÏÊ ÞÕ×ÓÔ×ÉÔÅÌØÎÏÓÔÉ. ïÔ×ÌÅÞÅÍÓÑ ÐÏËÁ ÏÔ
ÓÐÅËÔÒÏÓËÏÐÉÉ. ïÓÎÏ×ÎÙÍÉ ÆÁËÔÏÒÁÍÉ, ÉÓËÁÖÁÀÝÉÍÉ ÉÎÔÅÎÓÉ×ÎÏÓÔØ ÏÂßÅËÔÏ× × ËÁÄÒÅ, Ñ×ÌÑÀÔÓÑ
×ÉÎØÅÔÉÒÏ×ÁÎÉÅ (ÜËÒÁÎÉÒÏ×ÁÎÉÅ ÂÏËÏ×ÙÈ ÐÕÞËÏ× ÁÐÅÒÔÕÒÏÊ ÏÐÔÉÞÅÓËÏÇÏ ÔÒÁËÔÁ) É ÐÒÏÞÉÅ ÎÅÏÄÎÏÒÏÄÎÙÅ
Ó×ÏÊÓÔ×Á ÏÐÔÉÞÅÓËÉÈ ÓÉÓÔÅÍ. ÷ ÉÄÅÁÌØÎÏÊ ÓÉÔÕÁÃÉÉ ÄÌÑ ËÏÍÐÅÎÓÉÒÏ×ÁÎÉÑ~$F$ ÎÁÍ ÎÅÏÂÈÏÄÉÍÏ ÐÏÌÕÞÉÔØ
ÓÎÉÍÏË ÁÂÓÏÌÀÔÎÏ ÏÄÎÏÒÏÄÎÏ ÚÁÓ×ÅÞÅÎÎÏÇÏ ÐÒÏÔÑÖÅÎÎÏÇÏ ÏÂßÅËÔÁ Ó ÕÇÌÏ×ÙÍÉ ÒÁÚÍÅÒÁÍÉ, ÚÎÁÞÉÔÅÌØÎÏ
ÐÒÅ×ÏÓÈÏÄÑÝÉÍÉ ÐÏÌÅ ÚÒÅÎÉÑ ÎÁÛÅÊ ÏÐÔÉÞÅÓËÏÊ ÓÉÓÔÅÍÙ. ÷ ÓÌÕÞÁÅ ÔÅÌÅÓËÏÐÏ× Ó ÍÁÌÙÍ ÐÏÌÅÍ ÚÒÅÎÉÑ ÄÌÑ
ÄÁÎÎÙÈ ÃÅÌÅÊ È×ÁÔÁÅÔ ×ÅÞÅÒÎÉÈ ÉÌÉ ÕÔÒÅÎÎÉÈ ÓÎÉÍËÏ× ÎÅÂÁ ÐÒÉ ÍÁËÓÉÍÁÌØÎÏ ÒÁÓÓÅÑÎÎÏÍ ÓÏÌÎÅÞÎÏÍ Ó×ÅÔÅ
×Ï ×ÒÅÍÑ ÇÒÁÖÄÁÎÓËÉÈ ÓÕÍÅÒÅË. ðÒÉ ÂÏÌØÛÏÍ ÐÏÌÅ ÚÒÅÎÉÑ ÎÅÏÂÈÏÄÉÍÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÙÅ ÉÓÔÏÞÎÉËÉ
Ó×ÅÔÁ Ó ËÁË ÍÏÖÎÏ ÂÏÌÅÅ ÒÁ×ÎÏÍÅÒÎÙÍ ÏÓ×ÅÝÅÎÉÅÍ. ðÏÓÌÅ ÐÏÌÕÞÅÎÉÑ <<ÐÌÏÓËÉÈ>> ËÁÄÒÏ× ÓÌÅÄÕÅÔ
×ÙÞÉÓÌÉÔØ ÍÅÄÉÁÎÕ ÉÚ ÉÈ ÓÔÏÐËÉ, ×ÙÞÅÓÔØ <<ÔÅÍÎÏ×ÙÅ>>, ÚÁÔÅÍ ÎÏÒÍÉÒÏ×ÁÔØ ÎÁ ÍÁËÓÉÍÕÍ
ÉÎÔÅÎÓÉ×ÎÏÓÔÉ, Á ÄÁÌÅÅ~--- ÒÁÚÄÅÌÉÔØ ÐÏÄÇÏÔÏ×ÌÅÎÎÙÊ (Ó ×ÙÞÅÔÏÍ <<ÔÅÍÎÏ×ÙÈ>>) ÎÁÕÞÎÙÊ ËÁÄÒ ÎÁ
ÐÏÌÕÞÅÎÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ. ðÒÉ ÜÔÏÍ ÍÙ
ÐÏÌÕÞÁÅÍ:
$$I_{x,y} = \frac{\gamma F_{x,y}e_{x,y}T + R}{\gamma F_{x,y}T + R}\approx e_{x,y}T.$$
ëÏÎÅÞÎÏ, <<ÐÌÏÓËÉÅ>> ËÁÄÒÙ ÍÙ ÍÏÖÅÍ ÓÎÉÍÁÔØ Ó ÌÀÂÏÊ ÐÏÄÈÏÄÑÝÅÊ ÜËÓÐÏÚÉÃÉÅÊ. îÏ ÄÌÑ ËÏÒÒÅËÃÉÉ ÎÁ
ÔÅÍÎÏ×ÙÅ ÔÏËÉ, ÅÓÌÉ ÜËÓÐÏÚÉÃÉÑ <<ÐÌÏÓËÉÈ>> ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÜËÓÐÏÚÉÃÉÉ <<ÎÁÕÞÎÙÈ>> ËÁÄÒÏ×, ÎÁÍ
ÎÅÏÂÈÏÄÉÍÏ ÂÕÄÅÔ ÓÄÅÌÁÔØ ÅÝÅ ÏÄÉÎ ÎÁÂÏÒ <<ÔÅÍÎÏ×ÙÈ>>.
ëÁË ÐÒÉÍÅÒ ÍÅÄÉÁÎÎÏÇÏ ÕÓÒÅÄÎÅÎÉÑ ÓÔÏÐËÉ ÉÚÏÂÒÁÖÅÎÉÊ, ÓÇÅÎÅÒÉÒÕÅÍ ÚÁÛÕÍÌÅÎÎÙÅ ÉÚÏÂÒÁÖÅÎÉÑ (ÍÏÖÎÏ
ÉÓÐÏÌØÚÏ×ÁÔØ É \t{awgn}):
\begin{verbatim}
for N=1:10; II(:,:,N) = I+100*randn(size(I)); endfor
imshow(histeq(II(:,:,2),65536))
\end{verbatim}
ðÏÄÏÂÎÙÍ ÏÂÒÁÚÏÍ ÆÏÒÍÉÒÕÀÔÓÑ ÎÁ ðúó ÒÅÁÌØÎÙÅ ÉÚÏÂÒÁÖÅÎÉÑ (ÒÁÚ×Å ÞÔÏ ÛÕÍÙ ÍÙ ÎÅÓËÏÌØËÏ
ÐÒÅÕ×ÅÌÉÞÉÌÉ). éÍÅÎÎÏ ÉÚ-ÚÁ ÛÕÍÏ× ÄÌÑ ÐÏÌÕÞÅÎÉÑ ËÁÞÅÓÔ×ÅÎÎÙÈ ËÁÄÒÏ× dark É flat ÎÅÏÂÈÏÄÉÍÏ ÓÄÅÌÁÔØ
ÉÈ ËÁË ÍÏÖÎÏ ÂÏÌØÛÅ! ðÏÓÌÅ ÞÅÇÏ ÓÔÏÐËÁ ÉÚÏÂÒÁÖÅÎÉÊ ÕÓÒÅÄÎÑÅÔÓÑ:
\begin{verbatim}
Imed = median(II, 3);
subplot(2,2,1)
imshow(histeq(II(:,:,2),65536))
subplot(2,2,2)
imshow(histeq(II(:,:,5),65536))
subplot(2,2,3)
imshow(histeq(Imed,65536))
subplot(2,2,4)
imshow(histeq(I,65536))
\end{verbatim}
äÁÖÅ ÄÌÑ ÛÕÍÁ ÔÁËÏÇÏ ÕÒÏ×ÎÑ ÍÙ ÐÒÉÂÌÉÚÉÌÉÓØ Ë ÏÒÉÇÉÎÁÌÕ ÄÏÓÔÁÔÏÞÎÏ ÎÅÐÌÏÈÏ ×ÓÅÇÏ-ÔÏ ÎÁ ÄÅÓÑÔÉ
ÉÚÏÂÒÁÖÅÎÉÑÈ. åÓÌÉ ÖÅ ÉÈ ÓÄÅÌÁÔØ ÈÏÔÑ ÂÙ ÓÏÔÎÀ, ×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ ÂÕÄÅÔ ÅÝÅ ÌÕÞÛÅ. á ÕÞÉÔÙ×ÁÑ ÔÏ, ÞÔÏ
ÍÅÄÉÁÎÎÙÊ ÆÉÌØÔÒ ÈÏÒÏÛÏ ÕÄÁÌÑÅÔ ×ÙÂÒÏÓÙ, ÔÁËÏÊ ÓÐÏÓÏÂ ÏÔÌÉÞÎÏ ÏÞÉÝÁÅÔ ÏÐÏÒÎÙÅ ËÁÄÒÙ ÏÔ ËÏÓÍÉÞÅÓËÉÈ
ÞÁÓÔÉÃ.
é ÄÌÑ ÉÚÏÂÒÁÖÅÎÉÊ ÏÂßÅËÔÁ ÍÙ ÍÏÖÅÍ ×ÙÐÏÌÎÑÔØ ÐÏÄÏÂÎÙÅ ÍÁÎÉÐÕÌÑÃÉÉ ÄÌÑ ÓÎÉÖÅÎÉÑ ÛÕÍÁ ËÁÖÄÏÇÏ
$e_{x,y}$. îÏ, × ÜÔÏÍ ÓÌÕÞÁÅ ÐÒÏÃÅÓÓ
×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ ÂÕÄÅÔ ÎÁÍÎÏÇÏ ÓÌÏÖÎÅÊ, Ô.Ë., ×Ï-ÐÅÒ×ÙÈ, ÔÅÌÅÓËÏÐ ÉÍÅÅÔ ÎÅÉÄÅÁÌØÎÏÅ ÓÏÐÒÏ×ÏÖÄÅÎÉÅ (É
ÏÂßÅËÔÙ ÎÅ ÔÏÌØËÏ ÎÅÍÎÏÇÏ <<ÒÁÚÍÁÚÙ×ÁÀÔÓÑ>>, ÎÏ ÅÝÅ É ÓÍÅÝÁÀÔÓÑ ÏÔ ÜËÓÐÏÚÉÃÉÉ Ë ÜËÓÐÏÚÉÃÉÉ);
×Ï-×ÔÏÒÙÈ, × ÐÒÏÃÅÓÓÅ ÐÏÌÕÞÅÎÉÑ ÉÚÏÂÒÁÖÅÎÉÊ ÍÏÇÕÔ ÉÚÍÅÎÑÔØÓÑ ÕÓÌÏ×ÉÑ (seeing, ÔÅÍÐÅÒÁÔÕÒÁ É ÐÒ.), ×
ÒÅÚÕÌØÔÁÔÅ ÞÅÇÏ PSF ÉÚÏÂÒÁÖÅÎÉÊ ÔÁËÖÅ ÂÕÄÅÔ ÍÅÎÑÔØÓÑ (ÓÌÅÄÏ×ÁÔÅÌØÎÏ, ÐÒÉÄÅÔÓÑ ÓÄÅÌÁÔØ ÎÅËÏÔÏÒÕÀ
ÄÅËÏÎ×ÏÌÀÃÉÀ É ÐÒÉ×ÅÄÅÎÉÅ ÉÚÏÂÒÁÖÅÎÉÑ Ë ÅÄÉÎÏÊ ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÅ, Á ÜÔÏ ÞÒÅ×ÁÔÏ ÏÛÉÂËÁÍÉ
ÉÎÔÅÒÐÏÌÑÃÉÉ).
\section{úÁÄÁÎÉÅ ÄÌÑ ÓÁÍÏÓÔÏÑÔÅÌØÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ}
÷ ÄÁÎÎÙÈ Ë ÚÁÄÁÎÉÀ ÓÏÄÅÒÖÁÔÓÑ ËÁÄÒÙ object, dark É flat. ÷ÙÐÏÌÎÉÔÅ ÓÌÅÄÕÀÝÅÅ.
\begin{enumerate}
\item éÚ <<ÎÁÕÞÎÙÈ>> ËÁÄÒÏ× ×ÙÂÅÒÉÔÅ ÏÄÉÎ Ó ÎÁÉÌÕÞÛÉÍ ËÁÞÅÓÔ×ÏÍ ÉÚÏÂÒÁÖÅÎÉÊ.
\item ÷ÙÞÉÓÌÉÔÅ ÍÅÄÉÁÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÅÍÎÏ×ÙÈ É ÐÌÏÓËÉÈ, ÐÏÌÕÞÉÔÅ ÎÏÒÍÉÒÏ×ÁÎÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ.
\item ðÏÄÂÅÒÉÔÅ ÐÏÄÈÏÄÑÝÉÊ ÆÉÌØÔÒ, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÉÔ ÐÏÌÕÞÉÔØ ÍÁÓËÕ, ×ÙÄÅÌÑÀÝÕÀ ÉÚÏÂÒÁÖÅÎÉÑ Ú×ÅÚÄ.
\item ðÏÄÇÏÔÏרÔÅ m-ÆÁÊÌÙ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÕÔÉÎÎÙÈ ÏÐÅÒÁÃÉÊ: ×ÙÞÉÓÌÅÎÉÑ ÍÁÓËÉ ËÏÌØÃÁ ÆÏÎÏ×ÙÈ
ÐÉËÓÅÌÅÊ, ÏÐÒÅÄÅÌÅÎÉÑ ÕÒÏ×ÎÑ ÆÏÎÁ, ÏÓ×ÅÝÅÎÎÏÓÔÉ ÏÔ Ú×ÅÚÄÙ É ËÏÏÒÄÉÎÁÔ ÅÅ ÃÅÎÔÒÏÉÄÁ.
\item ïÔÓÏÒÔÉÒÕÊÔÅ ÍÁÓËÉ ÐÏ ÕÍÅÎØÛÅÎÉÀ ÐÌÏÝÁÄÉ, ÄÌÑ ÄÁÌØÎÅÊÛÉÈ ×ÙÞÉÓÌÅÎÉÊ ÉÓÐÏÌØÚÕÊÔÅ ÐÅÒ×ÙÅ
ÐÑÔØÓÏÔ.
\item ÷ÙÞÉÓÌÉÔÅ ÏÓ×ÅÝÅÎÎÏÓÔÉ ÏÔ Ú×ÅÚÄ × ÐÒÅÄÅÌÁÈ ÐÏÌÕÞÅÎÎÙÈ ÍÁÓÏË. ïÔÓÏÒÔÉÒÕÊÔÅ ÐÏ ÕÍÅÎØÛÅÎÉÀ
ÏÓ×ÅÝÅÎÎÏÓÔÉ. ÷ÙÂÅÒÉÔÅ ÐÅÒ×ÙÅ 20.
\item ÷ÙÐÏÌÎÉÔÅ ÁÓÔÒÏÍÅÔÒÉÀ ÄÌÑ ÜÔÉÈ ÓÁÍÙÈ ÑÒËÉÈ Ú×ÅÚÄ ËÁÄÒÁ, ÐÏÌÕÞÉ× ËÏÏÒÄÉÎÁÔÙ~$(x,y)$ ÃÅÎÔÒÏÉÄÏ×.
\item ðÒÏ×ÅÒØÔÅ ÐÏÌÕÞÅÎÎÙÅ ×ÅÌÉÞÉÎÙ (ÐÒÅÏÂÒÁÚÕÊÔÅ ADU × Ú×ÅÚÄÎÙÅ ×ÅÌÉÞÉÎÙ É ÐÒÏ×ÅÄÉÔÅ ÎÏÒÍÉÒÏ×ËÕ ÎÁ
ÓÔÁÎÄÁÒÔÎÙÅ ÏÂßÅËÔÙ ÉÚ ËÁÔÁÌÏÇÏ×; ÄÌÑ ËÏÏÒÄÉÎÁÔ ÃÅÎÔÒÏÉÄÏ× ÕÞÔÉÔÅ, ÞÔÏ ÉÚÏÂÒÁÖÅÎÉÑ ÐÏ×ÅÒÎÕÔÙ ÎÁ
$90\degr$ É ÏÓØ~$Y$ ÎÁÐÒÁ×ÌÅÎÁ ×ÎÉÚ) ÐÏ ËÁÔÁÌÏÇÁÍ. ïÐÒÅÄÅÌÉÔÅ ÐÏÇÒÅÛÎÏÓÔØ Ó×ÏÉÈ ÒÁÓÞÅÔÏ× (Ú×ÅÚÄÎÙÈ
×ÅÌÉÞÉÎ É ËÏÏÒÄÉÎÁÔ).
\end{enumerate}
äÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ËÁÔÁÌÏÖÎÙÈ ×ÅÌÉÞÉÎ ×ÏÓÐÏÌØÚÕÊÔÅÓØ aladin, xephem, stellarium (É Ô.Ð.) ÉÌÉ on-line
ÓÅÒ×ÉÓÁÍÉ ËÁÔÁÌÏÇÏ×. ðÒÅÏÂÒÁÚÏ×ÁÔØ ËÏÏÒÄÉÎÁÔÙ~$(x,y)$ ÎÁ ÉÚÏÂÒÁÖÅÎÉÉ × $(\alpha, \delta)$ ÍÏÖÎÏ ÐÒÉ
ÐÏÍÏÝÉ ÕÔÉÌÉÔÙ \t{xy2sky} ÉÚ ÐÁËÅÔÁ \t{wcstools} (ÌÉÂÏ ÐÒÉ ÐÏÍÏÝÉ \t{ds9}). îÅ ÚÁÂÙ×ÁÊÔÅ Ï
ÓÏÂÓÔ×ÅÎÎÙÈ Ä×ÉÖÅÎÉÑÈ Ú×ÅÚÄ: ËÏÏÒÄÉÎÁÔÙ ÉÚ ËÁÔÁÌÏÇÁ (× Ô.Þ. ÔÅ, ËÏÔÏÒÙÍÉ ÍÙ ÍÏÖÅÍ ×ÏÓÐÏÌØÚÏ×ÁÔØÓÑ ×
\t{ds9}) ÐÒÉ×ÑÚÁÎÙ Ë ÜÐÏÈÅ J2000, Á Ó ÔÅÈ ÐÏÒ ÐÒÏÛÌÏ ÕÖÅ Ä×Á ÄÅÓÑÔÉÌÅÔÉÑ.
\end{document}