블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
  • total
  • today
  • yesterday

Category

2011. 6. 16. 02:05 Computer Vision
Digital Image Processing, 3rd ed.
Rafael C. Gonzalez & Richard E. Woods
Prentice Hall, 2008

google books: http://books.google.com/books?id=8uGOnjRGEzoC
official website: http://www.imageprocessingplace.com/

Rafael C. Gonzalez 
http://www.eecs.utk.edu/people/faculty/emeritus/gonzalez/main


1. Introduction
 
1.1 What is digital image processing?

digital image processing; processing digital images by means of a digital computer

picture elements = image elements = pels = pixels

image processing -> image analysis -> computer vision



- low-level process: both inputs and outputs are images
  eg. image preprocessing to reduce noise, contrast enhancement, image sharpening
- mid-level process:  inputs generally are images, but its outputs are attributes like edges, contours, identity of objects
  eg. segmentation, description of the objects, classification (recognition)
- higher-level process: recognized objects performs the cognitive functions associated with vision


   
1.2 The origins of digital image processing

halftone 망판(網版)화
http://terms.naver.com/entry.nhn?docId=270950
http://terms.naver.com/entry.nhn?docId=64830

 
http://en.wikipedia.org/wiki/Bartlane_cable_picture_transmission_system

http://en.wikipedia.org/wiki/Punched_tape


"modern digital computer"
with the introduction by John von Neumann of two key concepts: (1) a memory (2) conditional branching, which are the foundation of a CPU
+
mass storage & display systems
=> digital image processing


 
> the birth of digital image processing

- space probe

Work on using computer techniques for improving images from a space probe began at the Jet Propulsion Laboratory (Pasadena, California) in 1964 when pictures of the moon transmitted by Ranger 7 were processed by a computer to correct various types of image distortion inherent in the on-board television camera.

- medical diagnosis
Tomography consists of algorithms that use the sensed data to construct an image that represents a "slice" through the object. Motion of the object in a direction perpendicular to the ring of detectors produces a set of such slices, which constitute a three-dimensional rendition of the inside of the object. Tomography was invented independently by Sir Godfrey N. Hounsfield and Professor Allan M. Cormack, who shared the 1979 Nobel Prize in Medicine for their invention.



computerized axial tomography (CAT) http://en.wikipedia.org/wiki/Computerized_axial_tomography
서울대학교병원: 컴퓨터 단층 촬영 (Computed Tomography)


> applications of digital image processing 
   (1) for human interpretation
   (2) for machine perception


1.3 Examples of fields that use digital image processing

http://en.wikipedia.org/wiki/Electromagnetic_spectrum


http://en.wikipedia.org/wiki/Gamma_ray

positron emission tomography (PET) http://en.wikipedia.org/wiki/Positron_emission_tomography
양전자방출 단층촬영술 http://100.naver.com/100.nhn?docid=281698

http://en.wikipedia.org/wiki/X_ray

http://en.wikipedia.org/wiki/Ultraviolet

fluorescence microscopy http://en.wikipedia.org/wiki/Fluorescence_microscope
형광현미경 http://terms.naver.com/entry.nhn?docId=434197

http://en.wikipedia.org/wiki/Visible_light

light microscopy http://en.wikipedia.org/wiki/Light_microscopy#Optical_microscopy

http://en.wikipedia.org/wiki/Infrared

http://en.wikipedia.org/wiki/Thematic_map

http://landsat.gsfc.nasa.gov/images/

http://en.wikipedia.org/wiki/Multispectral_imaging

http://en.wikipedia.org/wiki/Defense_Meteorological_Satellite_Program

National Oceanic and Atmospheric Administration (NOAA) http://www.noaa.gov

http://en.wikipedia.org/wiki/Structured_light

Perceptics Corporation http://www.perceptics.com/

radar = radio detection and ranging  http://en.wikipedia.org/wiki/Radar

사이언스올 과학용어사전: 전파(radio wave) 

http://en.wikipedia.org/wiki/Magnetic_resonance_imaging

http://en.wikipedia.org/wiki/Microwaves


acoustic imaging
electron microscopy
synthetic (computer-generated) imaging


psi 평방 인치당 파운드(pounds per square inch: 타이어 등의 압력을 나타낼 때 씀) http://en.wikipedia.org/wiki/Pounds_per_square_inch

http://en.wikipedia.org/wiki/Ultrasound_imaging

http://en.wikipedia.org/wiki/Electron_microscope

transmission electron microscope (TEM) http://en.wikipedia.org/wiki/Transmission_electron_microscopy
투과전자현미경 (透過電子顯微鏡) http://terms.naver.com/entry.nhn?docId=432217

scanning electron microscope (SEM) http://en.wikipedia.org/wiki/Scanning_electron_microscope
주사전자현미경 (走査電子顯微鏡) http://terms.naver.com/entry.nhn?docId=422329


http://en.wikipedia.org/wiki/Fractal

tiling http://en.wikipedia.org/wiki/Tessellation

http://en.wikipedia.org/wiki/3d_modeling

http://en.wikipedia.org/wiki/3D_visualization


1.4 Fundamental steps in digital image processing

image acquisition,
image enhancement,
image restoration,
color image processing,
wavelets (-> image data compression / pyramidal representation),
compression,
morphological processing,
segmentation,
(boundary/regional) representation & description (feature selection),
recognition 


1.5 Components of an image processing system

- sensing - physical device (image sensor) + digitizer

- specialized image processing hardware - digitizer + ALU
http://en.wikipedia.org/wiki/Arithmetic_logic_unit

- general-purpose computer

- software - a package of specialized modules 

- mass storage - computer memory / frame buffers (=> zoom, scroll, pan)
http://en.wikipedia.org/wiki/Frame_buffer













 
posted by maetel
2011. 1. 17. 01:21 Computer Vision
Shai Avidan, Ariel Shamir, Seam Carving for Content-Aware Image Resizing, SIGGRAPH, 2007





posted by maetel
2010. 11. 11. 16:22 Computer Vision
Image Processing for Computer Graphics and Vision, 2nd ed. 
Velho, Luiz, Frery, Alejandro C., Gomes, Jonas
Springer, 2009


비록 학부 4학년은 아니었더라도 석사 1학기에 봤었다면 좋았을 것을...


'Computer Vision' 카테고리의 다른 글

Winsock  (0) 2010.11.26
camera Firefly (FFMV-03M2M)  (0) 2010.11.25
Duda, Hart & Stork [Pattern Classification] (2nd ed)  (0) 2010.11.11
OpenCV 2.1.0 Installation on Mac OS X Snow Leopard  (0) 2010.11.02
OpenCV: Decision Trees  (0) 2010.10.12
posted by maetel
2010. 11. 1. 01:34 Cases/apps
사진을 찍으면 edges만을 살려 크로키 느낌을 주는 앱
http://itunes.apple.com/app/camera-4-line-art/id398988727?mt=8





풍경화 느낌을 주는 Camera 4 Landspace도 있다.
http://itunes.apple.com/app/camera-4-landscape/id391360591?mt=8

posted by maetel
2010. 9. 26. 19:30 Computer Vision
OpenCV 함수 cvTreshold or cv::threshold

source code link: https://code.ros.org/trac/opencv/browser/tags/2.1/opencv/src/cv/cvthresh.cpp
file: /opencv/src/cv/cvthresh.cpp


Learning OpenCV: Chapter 5 Image Processing: Threshold (135p)


cf. Otsu method




원본 영상

입력 영상



threshold=100, max_val=100, CV_THRESH_BINARY

threshold=100, max_val=200, CV_THRESH_BINARY

threshold=200, max_val=200, CV_THRESH_BINARY



threshold=50, CV_THRESH_TRUNC

threshold=50, CV_THRESH_TRUNC

threshold=150, CV_THRESH_TRUNC



threshold=50, CV_THRESH_TOZERO

threshold=100, CV_THRESH_TOZERO

threshold=200, CV_THRESH_TOZERO



threshold=100, max_val=200, CV_THRESH_BINARY

threshold=100, max_val=200, CV_THRESH_BINARY & CV_THRESH_OTSU

threshold=100, max_val=200, CV_THRESH_OTSU


코드에서 CV_THRESH_OTSU는 CV_THRESH_BINARY | CV_THRESH_OTSU 와 같은 효과.
CV_THRESH_OTSU는 함수의 인자 "threshold"의 초기값과 무관하게 입력 영상에 대해 내부적으로 threshold 값을 구하고 이에 따라 선택된 픽셀들에 max_value 값을 준다.


posted by maetel
2010. 9. 25. 01:44 Computer Vision
http://en.wikipedia.org/wiki/Otsu's_method informed by prof.


Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9: 62–66. doi:10.1109/TSMC.1979.4310076



OpenCV 함수 cvThreshold()


ref.
Bryan S. Morse's Brigham Young University (1998-2000) Lecture 4: Thresholding

Milan Sonka, Vaclav Hlavac, Roger Boyle, <Image Processing, Analysis, and Machine Vision> (3rd ed.), Thomson (2008)
: Chapter 6 Segmentation I: 6.1.2 Optimal thresholding (180p)






posted by maetel
2010. 6. 22. 17:51 Computer Vision
Rafael Grompone von Gioi, Jérémie Jakubowicz, Jean-Michel Morel, Gregory Randall, LSD: A Fast Line Segment Detector with a False Detection Control, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 32, no. 4, pp. 722-732, Apr. 2010. doi:10.1109/TPAMI.2008.300


http://www.ipol.im/pub/algo/gjmr_line_segment_detector/

올~ 짱! 지난 2년 동안 발견한 논문 중 가장 마음에 들고 게다가 와 닿는다! (다른 논문들은 대부분 내게 우이독경이어서 그런 거지만...) 그래 난 이런 가장 상식적이고 기본적인 접근이 좋더라.


http://en.wikipedia.org/wiki/Linear_time#Linear_time


posted by maetel
2010. 4. 4. 17:33 Computer Vision
패턴 격자 무늬의 꼭지점 찾기

ref. swPark_2000rti.pdf

2010/04/04 - [Visual Information Processing Lab] - OpenCV: cvFilter2D() 연습 코드
2010/04/03 - [Visual Information Processing Lab] - Image Filtering



1) 1차 DoG filter 만들기: x방향과 y방향의 local maxima를 찾는다.

swPark_2000rti.pdf 440쪽:
"To find the edge of the grid, a first-order Derivative of Gaussian (DoG) filter with a kernel h = [-1, -7, -15, 0, 15, 7, 1] is used."




1차 DoG 필터 테스트:

입력 영상

흑백 영상

수평 방향 1차 DoG 필터링한 영상

수직 방향 1차 DoG 필터링한 영상





2) 다음 이미지에서 보다 확실히 나타나는, 2가지 문제를 해결해야 함

입력 영상

흑백 영상

x방향 DoG 필터링한 영상

y방향 DoG 필터링한 영상


(1) 패턴 격자에서 흑->백으로 넘어갈 때에만 edge 검출 (백->흑인 경우에는 무효)
(2) 검출된 edge 영역이 너무 두터움 (Non-Maxima Suppression을 해 주어야 한다고 함)


필터링 함수가 실제로 어떻게 이미지에 (색상/세기)값을 넣는지 볼 수 있을까 하여 cvFilter() 함수의 정의를 찾아 보니, 다음 부분이 나옴.

opencv/opencv/src/cv/cvfilter.cpp
CV_IMPL void
cvFilter2D( const CvArr* srcarr, CvArr* dstarr, const CvMat* _kernel, CvPoint anchor )
{
    cv::Mat src = cv::cvarrToMat(srcarr), dst = cv::cvarrToMat(dstarr);
    cv::Mat kernel = cv::cvarrToMat(_kernel);

    CV_Assert( src.size() == dst.size() && src.channels() == dst.channels() );

    cv::filter2D( src, dst, dst.depth(), kernel, anchor, 0, cv::BORDER_REPLICATE );
}

본론인 "cv::filter2D"에 대하여 같은 파일 안에 다음의 정의가 있음.

template<typename ST, class CastOp, class VecOp> struct Filter2D : public BaseFilter
{
    typedef typename CastOp::type1 KT;
    typedef typename CastOp::rtype DT;
   
    Filter2D( const Mat& _kernel, Point _anchor,
        double _delta, const CastOp& _castOp=CastOp(),
        const VecOp& _vecOp=VecOp() )
    {
        anchor = _anchor;
        ksize = _kernel.size();
        delta = saturate_cast<KT>(_delta);
        castOp0 = _castOp;
        vecOp = _vecOp;
        CV_Assert( _kernel.type() == DataType<KT>::type );
        preprocess2DKernel( _kernel, coords, coeffs );
        ptrs.resize( coords.size() );
    }

    void operator()(const uchar** src, uchar* dst, int dststep, int count, int width, int cn)
    {
        KT _delta = delta;
        const Point* pt = &coords[0];
        const KT* kf = (const KT*)&coeffs[0];
        const ST** kp = (const ST**)&ptrs[0];
        int i, k, nz = (int)coords.size();
        CastOp castOp = castOp0;

        width *= cn;
        for( ; count > 0; count--, dst += dststep, src++ )
        {
            DT* D = (DT*)dst;

            for( k = 0; k < nz; k++ )
                kp[k] = (const ST*)src[pt[k].y] + pt[k].x*cn;

            i = vecOp((const uchar**)kp, dst, width);

            for( ; i <= width - 4; i += 4 )
            {
                KT s0 = _delta, s1 = _delta, s2 = _delta, s3 = _delta;

                for( k = 0; k < nz; k++ )
                {
                    const ST* sptr = kp[k] + i;
                    KT f = kf[k];
                    s0 += f*sptr[0];
                    s1 += f*sptr[1];
                    s2 += f*sptr[2];
                    s3 += f*sptr[3];
                }

                D[i] = castOp(s0); D[i+1] = castOp(s1);
                D[i+2] = castOp(s2); D[i+3] = castOp(s3);
            }

            for( ; i < width; i++ )
            {
                KT s0 = _delta;
                for( k = 0; k < nz; k++ )
                    s0 += kf[k]*kp[k][i];
                D[i] = castOp(s0);
            }
        }
    }

    Vector<Point> coords;
    Vector<uchar> coeffs;
    Vector<uchar*> ptrs;
    KT delta;
    CastOp castOp0;
    VecOp vecOp;
};



Try #1.
-1) 필터링의 결과 이미지의 bit depth를 "8"이 아니라 "IPL_DEPTH_32F"로 바꾼 다음,  음수로 나온 gradient 값을 양수로 바꾸어 준다.
그런데, 입력 영상을 담을 메모리를 별도로 생성하지 않고, 다음과 같이 비디오 프레임 캡처 시 만들어 주므로 인위적으로 설정해 줄 수 없다.
iplInput = cvRetrieveFrame(capture);

그래서 cvConvert() 함수를 이용한다. 정의는 다음과 같다.

OpenCV.framework/Versions/A/Headers/cxcore.h
#define cvConvert( src, dst )  cvConvertScale( (src), (dst), 1, 0 )

void cvConvertScale(const CvArr* src, CvArr* dst, double scale=1, double shift=0)

Converts one array to another with optional linear transformation.

#define cvCvtScale cvConvertScale
#define cvScale cvConvertScale
#define cvConvert(src, dst ) cvConvertScale((src), (dst), 1, 0 )
Parameters:
  • src – Source array
  • dst – Destination array
  • scale – Scale factor
  • shift – Value added to the scaled source array elements


-2) Non Maximum Suppression  (NMS)
이웃 화소들의 세기값을 비교하여 해당 픽셀이 최대값이 아니면 "0"으로 하여 지워 준다



입력 영상

x방향 DoG filtering하고 NMS한 영상

y방향 DoG filtering하고 NMS한 영상





Szeliski, Computer Vision: Algorithms and Applications, 214쪽



Szeliski, Computer Vision: Algorithms and Applications, 215쪽

ref.
http://research.microsoft.com/en-us/um/people/szeliski/Book/
2010/04/06 - [Visual Information Processing Lab] - Non Maximum Suppression (NMS)


 
Try #2.
Sobel 마스크 이용



3)  gradient의 방향 판별
 
: 검출된 edge의 Gx, Gy의 절대값을 비교하여 vertical인지 horizontal인지 direction을 판별한다.
이로부터 그 점이 수평선 위의 점인지 수직선 위의 점인지를 구별하여 다음 단계인 line fitting에 적용한다.

ref.  2010/02/23 - [Visual Information Processing Lab] - virtual studio 구현: workflow







입력 영상

수직선 상의 edges만 검출한 영상

수평선 상의 edges만 검출한 영상




입력 영상

수직선 상의 edges만 검출한 영상

수평선 상의 edges만 검출한 영상


잘 됨 ^^

'Computer Vision' 카테고리의 다른 글

OpenCV: cvFitLine() 연습 코드  (0) 2010.04.06
virtual studio 구현: line fitting test  (0) 2010.04.06
OpenCV: cvFilter2D() 연습 코드  (0) 2010.04.04
Image Filtering  (0) 2010.04.03
OpenCV: cvSobel() 연습 코드  (3) 2010.04.03
posted by maetel
2010. 4. 3. 23:13 Computer Vision
Richard Szeliski, Computer Vision: Algorithms and Applications: 3.2 Linear Filtering


szeliski_3fig13

Richard Szeliski, Computer Vision: Algorithms and Applications 115쪽





Image Filtering — OpenCV 2.0 C Reference


'Computer Vision' 카테고리의 다른 글

virtual studio 구현: gradient filtering  (0) 2010.04.04
OpenCV: cvFilter2D() 연습 코드  (0) 2010.04.04
OpenCV: cvSobel() 연습 코드  (3) 2010.04.03
OpenCV: CV_IMAGE_ELEM  (0) 2010.04.02
OpenCV: cvFindContours  (0) 2010.04.02
posted by maetel
2009. 5. 15. 21:10 Computer Vision
to do: compute surface normal vectors

TGA file format
Targa = Truevision Advanced Raster Graphics Adapter
http://en.wikipedia.org/wiki/Truevision_TGA

http://www.fileformat.info/format/tga/egff.htm

http://people.sc.fsu.edu/~burkardt/cpp_src/tga_io/tga_io.html


RLE = Run-length encoding
http://en.wikipedia.org/wiki/Run-length_encoding


openCV
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html
lecture note
http://dasan.sejong.ac.kr/~sipark/class2008/mm/



Albedo
http://en.wikipedia.org/wiki/Albedo
In general, the albedo depends on the direction and directional distribution of incoming radiation. Exceptions are Lambertian surfaces, which scatter radiation in all directions in a cosine function, so their albedo does not depend on the incoming distribution.


typedef struct _IplImage
{
    int  nSize;             /* sizeof(IplImage) */
    int  ID;                /* version (=0)*/
    int  nChannels;         /* Most of OpenCV functions support 1,2,3 or 4 channels */
    int  alphaChannel;      /* Ignored by OpenCV */
    int  depth;             /* Pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,
                               IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported.  */
    char colorModel[4];     /* Ignored by OpenCV */
    char channelSeq[4];     /* ditto */
    int  dataOrder;         /* 0 - interleaved color channels, 1 - separate color channels.
                               cvCreateImage can only create interleaved images */
    int  origin;            /* 0 - top-left origin,
                               1 - bottom-left origin (Windows bitmaps style).  */
    int  align;             /* Alignment of image rows (4 or 8).
                               OpenCV ignores it and uses widthStep instead.    */
    int  width;             /* Image width in pixels.                           */
    int  height;            /* Image height in pixels.                          */
    struct _IplROI *roi;    /* Image ROI. If NULL, the whole image is selected. */
    struct _IplImage *maskROI;      /* Must be NULL. */
    void  *imageId;                 /* "           " */
    struct _IplTileInfo *tileInfo;  /* "           " */
    int  imageSize;         /* Image data size in bytes
                               (==image->height*image->widthStep
                               in case of interleaved data)*/
    char *imageData;        /* Pointer to aligned image data.         */
    int  widthStep;         /* Size of aligned image row in bytes.    */
    int  BorderMode[4];     /* Ignored by OpenCV.                     */
    int  BorderConst[4];    /* Ditto.                                 */
    char *imageDataOrigin;  /* Pointer to very origin of image data
                               (not necessarily aligned) -
                               needed for correct deallocation */
}
IplImage;







'Computer Vision' 카테고리의 다른 글

Photometric stereo 2009-06-07  (0) 2009.06.08
Photometric stereo 2009-06-05  (0) 2009.06.05
Criminisi, Reid, Zisserman <Single View Metrology>  (0) 2009.05.06
Photometric stereo 2009-05-01  (0) 2009.05.01
camera calibration 09-04-24  (0) 2009.04.24
posted by maetel
ltlslChapter 2. The image, its representations and properties


2.1 Image representations, a few concepts


mathematical models
signals
scalar (monochrome image) / vector (color image) function

The domain of a given function is the set of "input" values for which the function is defined.
The range of a function is the set of all "output" values produced by that function.

12p
Image Functions
f(x,y) or f(x,y,t)
- perspective: parallel (or orthographic) projection
- static/dynamic, monochrome/color 
- resolution: spatial/spectral/radiometric/time
- deterministic/stochastic

The 2D intensity image is the result of a perspective projection of the 3D scene.

13p
Parallel/Orthographic projection
http://en.wikipedia.org/wiki/Orthographic_projection
http://en.wikipedia.org/wiki/Orthographic_projection_(geometry)

http://en.wikipedia.org/wiki/Orthogonal_projection

http://en.wikipedia.org/wiki/Graphical_projection


A full 3D representation is
(1) independent of the viewpoint
(2) expressed in the co-ordinate system of the object (rather than of the viewer)

=> Any intensity image view of the objects may be synthesized by standard computer graphics techniques.

microstructure
http://en.wikipedia.org/wiki/Microstructure


14p

Quality of a digital image
1. spatial resolution
2. spectral resolution
3. radiometric resolution
4. time resolution


Images f(x,y)
: deterministic functions / realizations of stochastic processes

linear system theory
integral transforms
discrete mathematics
theory of stochastic processes

A 'well-behaved' image function f(x,y) is integrable, has an invertible Fourier transform, etc.


2.2 Image digitization

sampled - a matrix with M rows and N columns
quantization - K interval (an integer value)

Image quantization assigns to each continuous sample an integer value - the continuous range of the image function f(x,y) is split into K intervals.



2.2.1 Sampling

Shannon's theorem (->3.2.5)

http://en.wikipedia.org/wiki/Shannon%27s_theorem
In information theory, the noisy-channel coding theorem establishes that however contaminated with noise interference a communication channel may be, it is possible to communicate digital data (information) nearly error-free up to a given maximum rate through the channel. This surprising result, sometimes called the fundamental theorem of information theory, or just Shannon's theorem, was first presented by Claude Shannon in 1948.The Shannon limit or Shannon capacity of a communications channel is the theoretical maximum information transfer rate of the channel, for a particular noise level.




TV - 512 * 512
PAL - 768 * 576
NTSC - 640 * 480


15p
raster
: the grid on which a neighborhood relation between points is defined
http://en.wikipedia.org/wiki/Rasterisation


Dirac impulses
http://en.wikipedia.org/wiki/Dirac_delta_function

The pixel captured by a real digitization device has finite size, since the sampling function is not a collection of ideal Dirac impulses but a collection of limited impulses.
-> 3.2.5


2.2.2 Quantization

Quantization is the transition between continuous values of the image function (brightness) and its digital equivalent.

The number of brightness of displays normally provide a range of at least 100 intensity levels.

average local brightness => gray-scale transformation techniques
(-> 5.1.2)



2.3 Digital image properties


17p
2.3.1 Metric and topological properties of digital images

Distance - identity, symmetry, triangular inequality

1) Euclidean distance, D_E
Pythagorean metric
http://en.wikipedia.org/wiki/Euclidean_distance
2) 'city block' distance (; L1 metric; Manhattan distance), D_4
rectilinear distance, L1 distance or L1 norm (see Lp space), city block distance, Manhattan distance, or Manhattan length
http://en.wikipedia.org/wiki/City_block_distance
3) 'chessboard' distance, D_8
Chebyshev distance (or Tchebychev distance), or L∞ metric
http://en.wikipedia.org/wiki/Chebyshev_distance
 4) quasi-Euclidean distance D_QE


18p

region
: a connected set (in a set theory)
: a set of pixels in which there is a path between any pair of its pixels, all of whose pixels also belong to the set
: a set of pixels in which each pair of pixels is contiguous

object (image data interpretation: segmentation)

hole
: points which do not belong to the object and are surrounded by the object

background

The relation 'to be contiguous' decomposes an image into individual regions.


19p

contiguity paradox
paradoxes of crossing lines
connectivity problems

ref.
Digital Geometry: Geometric Methods for Digital Picture Analysis
Reinhard Klette, Azriel Rosenfeld (Morgan Kaufmann, 2004)

topology based on cellular complexes
http://en.wikipedia.org/wiki/Bernhard_Riemann
http://en.wikipedia.org/wiki/Differential_geometry

ref.
Algorithms in Digital Geometry Based on Cellular Topology

V. Kovalevsky
University of Applied Sciences Berlin
http://www.kovalevsky.de/; kovalev@tfh-berlin.de
Abstract. The paper presents some algorithms in digital geometry based on the
topology of cell complexes. The paper contains an axiomatic justification of the
necessity of using cell complexes in digital geometry. Algorithms for solving
the following problems are presented: tracing of curves and surfaces,
recognition of digital straight line segments (DSS), segmentation of digital
curves into longest DSS, recognition of digital plane segments, computing the
curvature of digital curves, filling of interiors of n-dimensional regions
(n=2,3,4), labeling of components (n=2,3), computing of skeletons (n=2, 3).


20p

distance transform; distance function; chamfering algorithm
woodcarving operation
http://en.wikipedia.org/wiki/Distance_transform

ref.
Distance Transform
David Coeurjolly, Laboratoire LIRIS, France, 2006

A Method for Obtaining Skeletons Using a Quasi-Euclidean Distance
U Montanari - Journal of the ACM (JACM), 1968

A linear time algorithm for computing exact Euclidean distance transforms of binary images in arbitrary dimensions
Maurer, C.R., Jr.; Rensheng Qi; Raghavan, V


> applications of the distance transformation
discrete geometry
path planning and obstacle avoidance in mobile robotics
finding the closest feature in the image
skeletonization (mathematical morphology methods)


21p

edge
: a local property of a pixel and its immediate neighborhood

The edge tells us how fast the image intensity varies in a small neighborhood of a pixel.

 

The gradient of the image function is used to compute edges.

 

The edge direction is perpendicular to the gradient direction which points in the direction of the fastest image function growth.


crack edge

22p

border (boundary)
: the set of pixels within the region that have one or more neighbors outside
: inner/outer

The border is a global concept related to a region, while edge expresses local properties of an image function.


23p

convex
: If any two points within a region are connected by a straight line segment, and the whole line lies within the region, then this region is convex.

convex hull
: the smallest convex region containing the input region

deficit of convexity - lakes & bays


topology
topological invariant  = topological invariant
http://en.wikipedia.org/wiki/Topological_property
a property of a topological space which is invariant under homeomorphisms. That is, a property of spaces is a topological property if whenever a space X possesses that property every space homeomorphic to X possesses that property. Informally, a topological property is a property of the space that can be expressed using open sets.

homeomorphism = topological isomorphism
http://en.wikipedia.org/wiki/Homeomorphism
the mappings which preserve all the topological properties of a given space. Two spaces with a homeomorphism between them are called homeomorphic, and from a topological viewpoint they are the same.

rubber sheet transform:
Stretching does not change contiguity of the object parts and does not change the number of holes in regions.


Euler-Poincaré Characteristi
http://en.wikipedia.org/wiki/Euler_characteristic
http://mathworld.wolfram.com/EulerCharacteristic.html


24p

2.3.2 Histograms

brightness histogram
: the freqency of the brightness value in the image

The histogram is usually the only global information about the image which is available.


> applications of histogram
finding optimal illumination conditions for capturing an image
gray-scale transformations
image segmentation to objects and background

A change of the object position on a constant background does not affect the histogram.


> local smoothing of the histogram
(1) local averaging of neighboring histogram elements + boundary adjustment
(2) Gaussian blurring: 1-d simplification of the 2-d Gaussian blur


25p

2.3.3 Entropy

information entropy
: the amount of uncertainty about an event associated with a given probability distribution

As the level of disorder rises, entropy increases and events are less predictable.

 

The uncertainty for such set of \displaystyle n outcomes is defined by

         
   \displaystyle 
   u = \log_b (n)

since the probability of each event is 1 / n, we can write

   \displaystyle 
   u 
   = \log_b \left(\frac{1}{p(x_i)}\right)
   = - \log_b (p(x_i))
   \ , \ \forall i = 1, \cdots , n
 

The average uncertainty \displaystyle \langle u \rangle, with \displaystyle \langle \cdot \rangle being the average operator, is obtained by


   \displaystyle 
   \langle u \rangle
   =
   \sum_{i=1}^{n}
   p(x_i)
   u_i
   =
   -
   \sum_{i=1}^{n}
   p(x_i)
   \log_b (p(x_i))

 

gray-level histogram -> probability density p(x_k) -> entropy


http://en.wikipedia.org/wiki/Entropy_(information_theory)

Shannon's source coding theorem shows that, in the limit, the average length of the shortest possible representation to encode the messages in a given alphabet is their entropy divided by the logarithm of the number of symbols in the target alphabet.


C.E. Shannon, "A Mathematical Theory of Communication",
Bell System Technical Journal, vol. 27, pp. 379-423, 623-656, July, October, 1948



2.3.4 Visual perception of the image
 
Contrast
http://en.wikipedia.org/wiki/Contrast_(vision
 
Acuity 예민함
http://en.wikipedia.org/wiki/Visual_acuity
 
visual illusions
http://en.wikipedia.org/wiki/Optical_illusion
http://en.wikipedia.org/wiki/Ebbinghaus_illusion
 
 
perceptual grouping -> image segmentation
 
Gestalt theory
http://en.wikipedia.org/wiki/Gestalt_psychology
 
Patterns take precedence over elements and have properties that are not inherent in the elements themselves.
 
 
28p 
 

2.3.5 Image quality
Azriel Rosenfeld, Avinash C. Kak, Digital Picture Processing, Academic Press, 1982

parameter optimization
correlation between images
resolution of small or proximate objects in the image
measures of image similarity (retrieval from image databases)



2.3.6 Noise in image

white noise
http://en.wikipedia.org/wiki/White_noise

-> Gaussian noise

additive noise
http://en.wikipedia.org/wiki/Additive_white_Gaussian_noise

multiplicative noise

quantization noise
http://en.wikipedia.org/wiki/Quantization_noise

impulse noise

-> salt-and-pepper noise
http://en.wikipedia.org/wiki/Salt_and_pepper_noise


unknown about noise properties -> local pre-processing methods
known noise parameters -> image restoration techniques


SNR = signal-to-noise ration
http://en.wikipedia.org/wiki/Signal-to-noise_ratio



2.4 Color images

2.4.1 Physics of color
2.4.2 Color perceived by humans
2.4.3 Color spaces
2.4.4 Palette images
2.4.5 Color constancy

2.5 Cameras: an overview

2.5.1 Photosensitive sensors
2.5.2 A monochromatic camera
2.5.3 A color camera

2.6 Summary
 

'@GSMC > 박래홍: Computer Vision' 카테고리의 다른 글

Ch.10 Image Understanding  (0) 2008.12.15
Ch.9 Object Recognition  (0) 2008.11.25
2.4 Color images & 2.5 Cameras  (0) 2008.10.16
Ch. 6 Segmentation I  (0) 2008.09.20
Ch.1 Introduction  (0) 2008.09.04
posted by maetel
2008. 7. 22. 18:10 Computation/Algorithm
http://www.ph.tn.tudelft.nl/Courses/FIP/noframes/fip.html

Ian T. Young
Jan J. Gerbrands
Lucas J. van Vliet

Delft University of Technology

invalid-file

Fundamentals of Image Processing (Delft University of Technology)





posted by maetel
2008. 7. 21. 16:25 Computer Vision
2008-07-18 쇠 @가브리엘 507







'Computer Vision' 카테고리의 다른 글

papers  (0) 2008.11.14
2008 fall courses  (0) 2008.09.15
[박용문] Digital Image Processing #4  (0) 2008.07.17
[박용문] Digital Image Processing #3  (0) 2008.07.17
[박용문] Digital Image Processing #2  (0) 2008.07.15
posted by maetel
2008. 7. 17. 22:24 Computer Vision
2008-07-17 나무 @가브리엘 507




Assignment
3-1. Histogram Specification

ref.
http://en.wikipedia.org/wiki/Inverse_matrix
http://demonstrations.wolfram.com/33MatrixExplorer/


3-2. Morphing Images


'Computer Vision' 카테고리의 다른 글

2008 fall courses  (0) 2008.09.15
[박용문] Digital Image Processing #5  (0) 2008.07.21
[박용문] Digital Image Processing #3  (0) 2008.07.17
[박용문] Digital Image Processing #2  (0) 2008.07.15
[박용문] Digital Image Processing #1  (0) 2008.07.14
posted by maetel
2008. 7. 17. 20:23 Computer Vision
2008-07-16 물 @가브리엘 507


'Computer Vision' 카테고리의 다른 글

2008 fall courses  (0) 2008.09.15
[박용문] Digital Image Processing #5  (0) 2008.07.21
[박용문] Digital Image Processing #4  (0) 2008.07.17
[박용문] Digital Image Processing #2  (0) 2008.07.15
[박용문] Digital Image Processing #1  (0) 2008.07.14
posted by maetel
2008. 7. 15. 20:47 Computer Vision
2008-07-15 불 @가브리엘 706


Point Processing

Histogram

밝기의 차이가 커지면 영상의 선명도가 증가한다.

Clamping 클램핑 기법

Wraping 기법

Intensity Transform 명암 변환
Null Transform
Negative Transform

Gamma Correction

Intensity Contrast Transform:
Intensity Contrast Stretch
Intensity Contrast Compress

Posterizing
Binarization
범위 강조 변환


Convolution Technique 회선 기법
Convolution Processing 회선 처리

Embossing
Blurring (Low Pass Filter)
Sharpening (High Pass Filter)
Edge Detection
잡음 제거



'Computer Vision' 카테고리의 다른 글

2008 fall courses  (0) 2008.09.15
[박용문] Digital Image Processing #5  (0) 2008.07.21
[박용문] Digital Image Processing #4  (0) 2008.07.17
[박용문] Digital Image Processing #3  (0) 2008.07.17
[박용문] Digital Image Processing #1  (0) 2008.07.14
posted by maetel
2008. 7. 14. 20:34 Computer Vision
2008-07-14 달 @가브리엘 706


Image Processing < signal processing

geometric transform
enhancement 화질 개선
restoration 복원
compression 데이터 압축
object recognition 객체 인식


memset()

chromaticity 색도 = 색상 + 채도

contrast = (I_max - I_min) / (I_max + I_min)

인간의 지각 작용이 단순한 명도보다 명도의 대비에 더 민감하다.

Color Models:
RGB - additive system
CMY(K) - subtractive system
HSI
YCrCb - JPEG, MPEG
YIQ - NTSC
YUV - PAL

signal - analog & digital

digitalizing:
sampling
quantization
coding step 부호화

Picture Element = Pixel = Pel

Resolution - Spatial & Intensity(Brightness)

표본화(sampling)와 양자화(quantization)로 결정하는 해상도(resolution)는 컬러 요소 세 개의 명도값(intensity)에 따라 달라진다.

Binary Image - 지문, 팩스, 문자 영상
Gray-Level Image - 디지털 영상 처리의 기본
Color Image - 삼원색(RGB)



Q1. calloc이 malloc과 어떻게 다른 거야?


'Computer Vision' 카테고리의 다른 글

2008 fall courses  (0) 2008.09.15
[박용문] Digital Image Processing #5  (0) 2008.07.21
[박용문] Digital Image Processing #4  (0) 2008.07.17
[박용문] Digital Image Processing #3  (0) 2008.07.17
[박용문] Digital Image Processing #2  (0) 2008.07.15
posted by maetel
2008. 7. 8. 20:29 Computation/Algorithm
posted by maetel