mirror of
https://github.com/eddyem/lectures.git
synced 2025-12-06 10:45:09 +03:00
616 lines
26 KiB
TeX
616 lines
26 KiB
TeX
\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}
|