Автор Тема: Программные библиотеки растровой графики  (Прочитано 23409 раз)

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Предлагаю собирать ссылки на интересные программные библиотеки (или просто проекты) по работе с растровой графикой.

По возможности, желательно собирать реально значимые проекты (а ведь есть много малоинтересных проектов-"пустышек", которые не представляют интереса).

Я перенёс в эту новую тему парочку постов из темы http://www.djvu-scan.ru/forum/index.php?topic=58.0.

m7876
Цитировать
Советую обратить внимание на фильтр Wavelet Sharpen в GIMP.
Спасибо, я вот именно про такой плагин ещё не слышал. Вот нашёл несколько интересных ссылок на эту тему:

http://www.swaj.net/zametki/gimp-wavelets/gimp-wavelets.html
http://nvitr.narod.ru/rasshireniya_plagini_i_skripti_gimp/wavelet
http://gimp4stockers.blogspot.com/2010/01/10.html
http://wiki.linuxformat.ru/index.php/LXF112:GIMP

Выглядит весьма впечатляюще. Очень интересно.

Wavelet decompose   http://registry.gimp.org/node/11742
Wavelet denoise   http://registry.gimp.org/node/4235
Wavelet sharpen   http://registry.gimp.org/node/9836
« Последнее редактирование: 07 ёоЫм 2010, 12:22:54 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Обнаружился ещё один интересный алгоритм. Называется "Deconvolution".

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

Превращает размытое изображение в резкое.

Примеры с картинками:

http://www.astraimage.com/ai30ps.htm
http://www.focusmagic.com/

Вот исходный код Wiener deconvolution для Matlab и картинка, иллюстрирующая его действие:

http://commons.wikimedia.org/wiki/File:Image_restoration_(motion_blur,_Wiener_filtering).png

Проект с исходниками:
http://code.google.com/p/aida-deconvolution/
« Последнее редактирование: 06 ёоЫм 2010, 12:09:21 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Цитировать
Iterative refocus GIMP plug-in can be used to refocus images acquired by a defocused camera, blurred by gaussian or motion blur or any combination of these. Adaptive or static area smoothing can be used to remove the so called \"ringing\" effect.
http://sourceforge.net/projects/refocus-it/
Цитировать
This is a Gimp plugin for noise-removal, similar to the selective gaussian blur plugin, but much faster in many cases. It also includes an extension that improves the performance of the bilateral filter/selective Gaussian blur on image gradients.
http://sourceforge.net/projects/gimp-bilateral/
Цитировать
Our project deals with methods to improve quality of blurred images. You can add your blurred images and restore the image.
http://sourceforge.net/projects/imagerestore/

ImageJ Plugins - очень мощный набор с изобилием готовых сложных алгоритмов. Один из наиболее ценных источников алгоритмов ИМХО:
http://rsb.info.nih.gov/ij/plugins/index.html

Цитировать
Fourier consists of several toolboxes that implement operations such as image I/O, geometric transformations, color space conversions, noise removal, smoothing, enhancement, morphology, edge detection, thresholding, segmentation, and visual (shape, color, texture) feature extraction.
http://lsus.edu/faculty/~ecelebi/fourier.htm
Цитировать
The Camellia Library includes a lot of functions for image processing (filtering, morphological mathematics, labelling, warping, drawing, project/backproject, color conversion, loading/saving images, etc.), most of them being highly speed-optimized. Fully interoperable with OpenCV, though easier to use.
http://camellia.sourceforge.net/
Цитировать
The pymorph Morphology Toolbox for Python is a powerful collection of latest state-of-the-art gray-scale morphological tools that can be applied to image segmentation, non-linear filtering, pattern recognition and image analysis.
http://www.mmorph.com/pymorph/
Цитировать
The LTI-Lib is an object oriented library with algorithms and data structures frequently used in image processing and computer vision. It has been developed at the Chair of Technical Computer Science (Lehrstuhl fuer Technische Informatik) LTI at the Aachen University of Technology, as part of many research projects in computer vision dealing with robotics, object recognition and sing language and gesture recognition.
http://ltilib.sourceforge.net/doc/homepage/index.shtml
Цитировать
EPSILON is a powerful Open Source wavelet image compressor. The project is aimed on parallel and robust image processing.
http://sourceforge.net/projects/epsilon-project/
« Последнее редактирование: 07 ёоЫм 2010, 12:25:53 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Цитировать
Medical Image Computing Workflow (MICFlow) is a simple, easy but flexible, extensible and powerful workflow system to automate medical image computing tasks such as segmentation, registration and analysis. It's pure Python so can be used on any platform
http://sourceforge.net/projects/micflow/
Цитировать
A multi-platform collection of C++ software libraries for Computer Vision and Image Understanding.
http://sourceforge.net/projects/vxl/

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Самодельные алгоритмы для Matlab

Взяты отсюда: http://www.mathworks.com/matlabcentral/fileexchange/?term=tag%3A%22image+processing%22

Edge Preserving Smoothing
Цитировать
A common technique for removing noise from images is by blurring them with a weighted mean or a Gaussian filter. Through these processes noise reduction is achieved, but unfortunately, valuable information is lost and the details of object boundaries are
deformed. A solution to this problem, especially for document images, is the use of an edge preserving smoothing technique (adaptive mean filter) where the amount of blurring for each pixel is determined after gathering local information in a specified
neighborhood . In this approach, we use a simple and effective EPSF, which performs its task with low computation time.
http://www.mathworks.com/matlabcentral/fileexchange/27988-edge-preserving-smoothing

Fast Deconvolution
Цитировать
This function deconvolves one extremely large vector out of another extremely large vector very quickly. Enormous gains in speed are due to the use of two fft's and an ifft. To find out how to use this program, put it in you 'work' folder and type "help fdeconv".
http://www.mathworks.com/matlabcentral/fileexchange/5465-fast-deconvolution

2-D Savitzky-Golay Smoothing Filter
Цитировать
2-D Savitzky-Golay smoothing filter (i.e., the polynomial smoothing
filter, or the least-squares smoothing filter)
Кажется, фильтр с таким именем применялся для чего-то в Scan Tailor. Только вот не помню, для чего именно.
http://www.mathworks.com/matlabcentral/fileexchange/4270-2-d-savitzky-golay-smoothing-filter

Image Edge Enhancing Coherence Filter Toolbox
Цитировать
This toolbox will perform Anisotropic Non-Linear Diffusion filtering on a 2D gray/color or 3D image. This filtering will reduce the image noise while preserving the region edges, and also enhancing the edges by smoothing along them.
Там даже есть картиночка, иллюстрирующая действие фильтра (шумоподавление).
http://www.mathworks.com/matlabcentral/fileexchange/25449-image-edge-enhancing-coherence-filter-toolbox

Bilateral Filtering
Цитировать
Bilateral filtering was proposed by Tomasi and Manduchi in 1998 as a non-iterative method for edge-preserving smoothing.
Есть картиночка, иллюстрирующая действие фильтра (размытие).
http://www.mathworks.com/matlabcentral/fileexchange/12191-bilateral-filtering

Duffusion Filtering for Image Denoising
Цитировать
An assortment of diffusion based image filtering methods:
1. Linear Diffusion Filtering using heat equations - solved using both implicit and explicit Euler methods.
2. Edge Enhancing Linear Anisotropic Diffusion Filtering.
3. Edge Enhancing Non-linear Anisotropic Diffusion Filtering.
Есть картиночка, иллюстрирующая действие фильтра (размытие).
http://www.mathworks.com/matlabcentral/fileexchange/28112-duffusion-filtering-for-image-denoising

Lee filter
Цитировать
Lee filter for reducing speckle noise in images.
http://www.mathworks.com/matlabcentral/fileexchange/28046-lee-filter

Image segmentation using Otsu thresholding
Цитировать
IDX = OTSU(I,N) segments the image I into N classes by means of Otsu's N-thresholding method. OTSU returns an array IDX containing the cluster indices (from 1 to N) of each point.
 
IDX = OTSU(I) uses two classes (N=2, default value).
 
[IDX,sep] = OTSU(I,N) also returns the value (sep) of the separability criterion within the range [0 1]. Zero is obtained only with data having less than N values, whereas one (optimal value) is obtained only with N-valued arrays.

If I is an RGB image, a Karhunen-Loeve transform is first performed on the three R,G,B channels. The segmentation is then carried out on the image component that contains most of the energy.
Есть картиночка, иллюстрирующая действие фильтра.
http://www.mathworks.com/matlabcentral/fileexchange/26532-image-segmentation-using-otsu-thresholding

Discrete (co)sine transform (and its inverse)
Одно из этих преобразований применяется в JPEG-кодировщике. Оно близко по эффекту к Karhunen-Loeve transform - только более быстрое.
http://www.mathworks.com/matlabcentral/fileexchange/26040-discrete-cosine-transform-and-its-inverse

Variable blur, gradient blur
Есть картиночка, иллюстрирующая действие фильтра.
http://www.mathworks.com/matlabcentral/fileexchange/26879-variable-blur-gradient-blur

Image segmentation using statistical region merging
Есть картиночка, иллюстрирующая действие фильтра.
http://www.mathworks.com/matlabcentral/fileexchange/25619-image-segmentation-using-statistical-region-merging

The INface toolbox for illumination invariant face recognition
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
The INFace (Illumination Normalization techniques for robust Face recognition) toolbox is a collection of Matlab functions and scripts intended to help researchers working in the filed of face recognition. The toolbox was produced as a byproduct of my research work. It includes implementations of the following photometric normalization techniques: the single-scale-retinex algorithm, the multi-scaleretinex algorithm, the single-scale self quotient image, the multi-scale self quotient image, the homomorphic-filtering-based normalization technique, a wavelet-based normalization technique, a wevelet denoising-based normalization technique, the isotropic-diffusion-based normalization technique, the anisotropic diffusion-based normalization technique, the non-local means-based normalization technique, the adaptive non-local-means-based normalization technique, the DCT-based normalization technique and a normalization technique based on steerable filters. In addition to the listed techniques there are also a number of histogram manipulation functions included in the toolbox, which can be useful for the task of illumination invariant face recognition.

In addition to the functions listed above, the toolbox contains a detail user-manual and several demos with examples of usage of the individual functions.

I will try to post the original publication associated with the database as soon as I get the permission of the publisher for doing so.

Please report any bugs you find, so I can improve the toolbox.

Kalman filter for noisy movies
Цитировать
Implements a predictive Kalman-like filter in the time domain of the image stack. Algorithm taken from Java code by C.P. Mauer. http://rsb.info.nih.gov/ij/plugins/kalman.html
http://www.mathworks.com/matlabcentral/fileexchange/26334-kalman-filter-for-noisy-movies

Cartoon
Есть картиночка, иллюстрирующая действие фильтра.
Весьма любопытный фильтр. На вид что-то вроде постеризации.
http://www.mathworks.com/matlabcentral/fileexchange/26188-cartoon

imgaussian
интересно
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
IMGAUSSIAN filters an 1D, 2D color/greyscale or 3D image with a Gaussian filter.

Instead of using a multidimensional Gaussian kernel, it uses the fact that a Gaussian kernel can be separated in 1D kernels.

By the default the code uses IMFILTER for the filtering. But also a cache efficient MEX / c-code implementation is included. Compile with: "mex imgaussian.c -v"

J=IMGAUSSIAN(I,SIGMA,SIZE)

Comparison time needed to filter image volume of 512x512x512 with Gaussian kernel of sigma 1:
- 90.8 seconds : Imfilter with 3D gaussian kernel
- 21.8 seconds : Imgaussian using imfilter
- 8.18 seconds : Imgaussian using the MEX file

For small 2D images ( < 1024x1024 ) or large kernels (sigma 10), Imgaussian using imfilter is faster than the MEX file. This is because imfilter uses the "Intel Performance Primitives Library", and the MEX file only normal cache optimized c-code.
http://www.mathworks.com/matlabcentral/fileexchange/25397-imgaussian

MATLAB FOTOSHOP ;D
Есть картиночка, иллюстрирующая работу.
Цитировать
Inspired By Adobe Photoshop.
Thanks to Faisal Baig for codes of Motion Blur,Laplace Filter and Usm filter.
Its actually inspired by many of my earlier made functions.
I would love to extend this software to show the real capabilities of MATLAB.

This software took me quite a bit of time.
I hope there are no bugs, but if any bugs are found however small they are,
please report them to me.

Comments are important as these encourage we all matlab authors to better furnish,
remove minor bugs and helps to make better codes.
Specially while working with many guis at the sametime makes it complex,so I really think
that codes could be improved.
So, please put in your valuable inputs, those are most welcome.
http://www.mathworks.com/matlabcentral/fileexchange/15587-matlab-fotoshop

Image Halftoning by Jarvis Method
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Digital halftoning is the process of converting a continuous-tone images into strictly black and white images such that, when viewed by the human visual system, the pattern creates an illusion of being a continuous shade of gray.

The binary image created by halftoning is used in binary display devices, such as desktop inkjet printers.

In this program, the input gray image will be converted into halftone image of same size using Jarvis's Error Diffusion Method.
http://www.mathworks.com/matlabcentral/fileexchange/25303-image-halftoning-by-jarvis-method

color Image Segmentation
http://www.mathworks.com/matlabcentral/fileexchange/25257-color-image-segmentation

Illumumination Compensation in RGB space
http://www.mathworks.com/matlabcentral/fileexchange/24851-illumumination-compensation-in-rgb-space

AUTO LEVEL
Цитировать
Brightness is represented by its Luminance. Color information of an image is present in its Chrominance. This Chrominance consists of Hue and Saturation.

This code adjusts all these-Luminance,Hue and Saturation to their correct levels and thus corrects the brightness & color levels.
http://www.mathworks.com/matlabcentral/fileexchange/8212-auto-level

AUTO ENHANCEMENT FOR IMAGES
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Auto Enhancement : This Code auto enhances the images, by working on their brightness, color and contrasts. Results are shown for reference :)
http://www.mathworks.com/matlabcentral/fileexchange/24290-auto-enhancement-for-images

AUTO BRIGTHNESS
Цитировать
Brightness information is present in its Luminance. This code adjusts this luminance thus correcting the brightness level.
http://www.mathworks.com/matlabcentral/fileexchange/8154-auto-brigthness

AUTO CONTRAST
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Automatically adjusts the contrast of images(color/gray) to the "optimum" level, using contrast stretching.
http://www.mathworks.com/matlabcentral/fileexchange/10566-auto-contrast

AUTO COLOR
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Color information of an image is present in its Chrominance. This Chrominance consists of Hue and Saturation. This code adjusts both Hue and Saturation to "correct" levels and thus "corrects" the color level.
http://www.mathworks.com/matlabcentral/fileexchange/8192-auto-color
« Последнее редактирование: 08 ёоЫм 2010, 15:27:58 от monday2000 »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Продолжение.

Image Equalization
Цитировать
This code has been written in 2008 by me, Gholamreza Anbarjafari (Shahab). You can use this code for any research and academic purposes as far as you refer to the following work:
Hasan Demirel and Gholamreza Anbarjafari, "HSI Based Colour Image Equalization using Iterative nth Root and nth Power", 5th International Conference on Electrical and Computer Systems (EECS’08), Nov 27-28, 2008, Lefke, North Cyprus.
http://www.mathworks.com/matlabcentral/fileexchange/22503-image-equalization

Contrast Limited Adaptive Histogram Equalization (CLAHE)
Цитировать
This is an image contrast enhancement algorithm that overcomes limitations in standard histogram equalization (HE). The two primary features is adaptive HE (AHE), which divides the images into regions and performs local HE, and the contrast limited AHE (CLAHE), which reduces noise by partially reducing the local HE. Bilinear interpolation is used to avoid visibility of region boundaries.

  "Contrast Limited Adaptive Histogram Equalization"
  by Karel Zuiderveld, karel@cv.ruu.nl
  in "Graphics Gems IV", Academic Press, 1994

Ported by Leslie Smith
http://www.mathworks.com/matlabcentral/fileexchange/22182-contrast-limited-adaptive-histogram-equalization-clahe

Total Variation Grayscale and Color Image Denoising
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
The Rudin-Osher-Fatemi total variation (TV) denoising technique poses the problem of denoising as a minimization,
   Min_u int |grad u|+ (lambda/2) int (f-u)^2
where f is the noisy image, lambda is a nonnegative parameter, and u is the denoised image we seek.

u = tvdenoise(f,lambda) denoises the input image f using Chambolle's method [1]. The smaller the parameter lambda, the stronger the denoising.

If f is a color image (or any array where size(f,3) > 1), the vectorial generalization of the TV model is used and solved by a generalization of Chambolle's method [2]. The screenshot shows an example of tvdenoise applied to a noisy color image.

References
[1] A. Chambolle, "An Algorithm for Total Variation Minimization and Applications," J. Math. Imaging and Vision 20 (1-2): 89-97, 2004.
[2] X. Bresson and T.F. Chan, "Fast Minimization of the Vectorial Total Variation Norm and Applications to Color Image Processing", CAM Report 07-25.
http://www.mathworks.com/matlabcentral/fileexchange/16236-total-variation-grayscale-and-color-image-denoising

FFTSELFFILTER Frequency Domain Image Auto Filtering
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Reference - This code is based on the technique described in: D.G. Bailey - Detecting regular patterns using frequency domain self-filtering, 1997 Intl. Conf. on Image Processing, 1:440-3.
http://www.mathworks.com/matlabcentral/fileexchange/4131-fftselffilter-frequency-domain-image-auto-filtering

High Density Impulse Noise Removal
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Implementation of DBA Method for High Density Impulse Noise Removal
http://www.mathworks.com/matlabcentral/fileexchange/21868-high-density-impulse-noise-removal

Removing blob(s) from a binary image
http://www.mathworks.com/matlabcentral/fileexchange/20114-removing-blobs-from-a-binary-image

Hysteresis Thresholding
Цитировать
This function takes as parameters a grayscale image (real valued matrix of size x*w*1) and two thresholds (low and high), and returns the hysteresis thresholded version.

Hysteresis thresholding performs the following:
- every value below tLo is set to 0
- every value above tHi is set to 1
- the rest of the pixels are set to 1 if they are 4-way connected to any other 1-valued blob (area), 0 otherwise

It should be pretty straightforward to implement an 8-way connection check, if you want.
http://www.mathworks.com/matlabcentral/fileexchange/20009-hysteresis-thresholding

Active Contour Segmentation
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
This code implements the well-known Chan-Vese segmentation algorithm from the paper "Active Contours Without Edges."

This technique deforms an initial curve so that it separates foreground from background based on the means of the two regions. The technique is very robust to initialization and gives very nice results when there is a difference between the foreground and background means.

This code uses active contours and level sets in the implementation. It could also serve as a good framework for implementing all kinds of region-based active contour energies.
http://www.mathworks.com/matlabcentral/fileexchange/19567-active-contour-segmentation

Fast imrotate
Цитировать
This mex file will rotate UINT8 images just like imrotate(image,angle,'crop'), but ten times faster.
http://www.mathworks.com/matlabcentral/fileexchange/17788-fast-imrotate

Image Rotation Correction
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
This function gets a rotated image and corrects its clockwise or counterclockwise rotation. It can be useful for enhancing the output images of desktop scanners.
Что-то я не понял - это deskew, что ли?
http://www.mathworks.com/matlabcentral/fileexchange/16968-image-rotation-correction

Contrast Enhancement Utilities (Image Equalization, PDF, CDF)
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Several functions are provided for Histogram Processing. They include: PDF, CDF, and Histogram Equalization. For further details, please refer to: "Gonzales & Woods, DIP, 2nd. ed."
http://www.mathworks.com/matlabcentral/fileexchange/14501-contrast-enhancement-utilities-image-equalization-pdf-cdf

Histogram Equalization and Local Histogram Equalization
http://www.mathworks.com/matlabcentral/fileexchange/13729-histogram-equalization-and-local-histogram-equalization

BW Noise Reduction
Цитировать
This function gets the binary image and according to connectivity labeld the objects in Image and through the numbers of pixels in each connected component determined wether oject is noise or not.
http://www.mathworks.com/matlabcentral/fileexchange/11628-bw-noise-reduction

Contrast Stretch and Normalization
Цитировать
Stretches contrast on the image and normalize image from 0 to 1. The main difference of this function to the standard stretching functions is that standard function finds global minimum and maximum on the image, then uses some low and high threshold values to normalize image (values below LowTHR are equated to LowTHR and values above HighTHR are equated to HighTHR). This function uses threshold values that are NEXT to miminum and maximum. Thus, we can exclude image background (which is normally zero) and find minimum value on the image itself. Same consideration goes to high thr. We exclude first global maximum because, if its a spike, we have better chance with the next value, and if it is not a spike, normally, next value is quite close to max (assuming smooth image), so our error is small. If image is uniform, (all pixels have the same value), for instance zero, function returns the input array
http://www.mathworks.com/matlabcentral/fileexchange/11429-contrast-stretch-and-normalization

Frost filter for speckle noise reduction
Цитировать
Implementation of Frost filter for reducing speckle noise in images.
http://www.mathworks.com/matlabcentral/fileexchange/11432-frost-filter-for-speckle-noise-reduction

Automatic Thresholding
Цитировать
This is the function about an automatic thresholding for an image. The method is based on the entropy-based method.
http://www.mathworks.com/matlabcentral/fileexchange/8502-automatic-thresholding

Automatic Thresholding (другое)
Цитировать
Compute an optimal threshold for seperating the data into two classes [1].

This algorithm can be summarized as follows. The histogram is initially segmented into two
parts using a a randonly-select starting threshold value (denoted as T(1)). Then, the data are classified into two classes (denoted as c1 and c2). Then, a new threshold value is computed as the average of the above two sample means. This process is repeated untill the threshold value
does not change any more.

The algorithm was implemented by Dhanesh Ramachandram [2]. However, the input data of her/his algorithm should lie in the range [0,255]. My code doesn't have this requirement.

Reference: [1]. T. W. Ridler, S. Calvard, Picture thresholding using an iterative selection method,
           IEEE Trans. System, Man and Cybernetics, SMC-8, pp. 630-632, 1978.
           [2]. Dhanesh Ramachandram, Automatic Thresholding. Available online at: http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=3195&objectType=file
http://www.mathworks.com/matlabcentral/fileexchange/10462-automatic-thresholding

Steerable Gaussian Filters
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
This program can be used to evaluate the first directional derivative of an image. The orientation of the filter can be specified by the user. In general, these filters could be useful for edge detection and image analysis.

The filters created by this program are derived from the "steerable filters" presented in:

W. T. Freeman and E. H. Adelson, "The Design and Use of Steerable Filters", IEEE PAMI, 1991.

A demonstration program (runDemo.m) is included which will create an animation showing the directional derivatives evenly-spaced from 0 degrees to 360 degrees (in 15 degree increments).
http://www.mathworks.com/matlabcentral/fileexchange/9645-steerable-gaussian-filters

Image Color Reduction
http://www.mathworks.com/matlabcentral/fileexchange/9043-image-color-reduction

Karhunen-Loeve Decomposition for Statistical Recognition and Detection
Цитировать
This MATLAB script implements Karhunen-Loeve decomposition which is classical algorithm for face recognition and detection. Script uses ATT faces database http://www.uk.research.att.com/facesataglance.html
which can be downloaded from
http://www.uk.research.att.com/facedatabase.html
http://www.mathworks.com/matlabcentral/fileexchange/6995-karhunen-loeve-decomposition-for-statistical-recognition-and-detection

Local Normalization
интересно
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
LOCALNORMALIZE A local normalization algorithm that uniformizes the local mean and variance of an image.

ln=localnormalize(IM,sigma1,sigma2) outputs local normalization effect of image IM using local mean and standard deviation estimated by Gaussian kernel with sigma1 and sigma2 respectively.

Contributed by Guanglei Xiong (xgl99@mails.tsinghua.edu.cn) at Tsinghua University, Beijing, China.

Inspired by the link:

http://bigwww.epfl.ch/demo/jlocalnormalization/
Цитировать
This is especially useful for correct non-uniform illumination or shading artifacts.
Похоже, это алгоритм выравнивания освещённности, аналогичный http://www.djvu-soft.narod.ru/bookscanlib/016.htm

Kuan Filter
The basic kuan filter for denoising speckle noise affected images.
http://www.mathworks.com/matlabcentral/fileexchange/7839-kuan-filter

BlueNile - Image Frequency Domain Filtering
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
This software enables an automatic as well as manual filtering of images in the frequency domain (pattern suppression & emphasis, image smoothing and edge enhancing). See application examples & download PC version at

http://mywebpage.netscape.com/atanasiuvlad/bluenile/
http://www.mathworks.com/matlabcentral/fileexchange/4127-bluenile-image-frequency-domain-filtering

Complex Diffusion
Цитировать
Denoise images (gray level, can be extended for co,or) based on the concepts of linear and nonlinear diffusion. Will not introduce any blocky effects as in the case of 2nd order PDEs.

Ref :Guy Gilboa, Nir Sochen and Yehoshua Y Zeevi, Image Enhancement and Denoising by Complex Diffusion Processes, IEEE Trans. On Pattern Analysis and Machine Imtelligence, Vol. 26, No. 8, Aug. 2004
http://www.mathworks.com/matlabcentral/fileexchange/7688-complex-diffusion

Image Denoising using Fourth Order PDE
Цитировать
PDEs are very good candidates for image denoising. One of the most commonly used PDE based denoising technique is the second order non linear PDE proposed by Perona and Malik in 90s and its various versions. One probelm with the second order PDEs is the it may arise blocky effects in the image. This can be avoided by using fourth order PDEs.

Ref : Yu-Li You, M. Kaveh, Fourth Order Partial Differential Equations for Noise Removal?, IEEE Trans. Image Processing, vol. 9, no. 10, pp 1723-1730, October 2000
http://www.mathworks.com/matlabcentral/fileexchange/7683-image-denoising-using-fourth-order-pde

Relaxed Median
Цитировать
Better filter for impulse noise than normal median filter.

Ref:
Abdessamad Ben Hamza, Pedro L Luque-Escamilla, Jose Martinez Aroza and Ramon Roman Roldan, Removing Noise and Preserving Details with Relaxed Median Filters, Journal of Mathematical Imaging and Vision 11, 161-177,1999.
http://www.mathworks.com/matlabcentral/fileexchange/7672-relaxed-median

gen_susan
Цитировать
GEN_SUSAN - Generalized SUSAN 2-D filtering SUSAN filtering with filter kernel W scaled with generalized Gaussian of intensity difference. Different prefiltering functions can be selected as well as width and exponent of the intensity scaling. GEN_SUSAN can produce filtering with caracteristics similar to wiener2 and medfilt2 and "everything inbetween"
http://www.mathworks.com/matlabcentral/fileexchange/6842-gensusan

f_threshold
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
Demonstrates image grayscale thresholding operation in the frequency domain via a binary lifting algorithm.
http://www.mathworks.com/matlabcentral/fileexchange/6542-fthreshold

magicwand2
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
A function which simulates Photoshop's magic wand tool. It allows selecting of connected groups of pixels whose colors are within a predefined tolerance of some reference pixels.

Both image and reference pixels may be interactively obtained. The current version is based on Phung's magicwand, but it is much faster and interactive.
http://www.mathworks.com/matlabcentral/fileexchange/6034-magicwand2

Gamma Correction
Цитировать
This is a small function to calculate the Gamma Correction for a input image file.
http://www.mathworks.com/matlabcentral/fileexchange/5347-gamma-correction

Simulating Photoshop's magic wand tool
Есть картиночка, иллюстрирующая действие фильтра.
Цитировать
The function (written entirely in MATLAB) allows the selection of connected pixels whose colors are within a defined tolerance of reference pixels.
http://www.mathworks.com/matlabcentral/fileexchange/4698-simulating-photoshops-magic-wand-tool

Grayscale Dilation and Erosion
Цитировать
Grayscale erosion and dilation: a very fast implementation.
http://www.mathworks.com/matlabcentral/fileexchange/4163-grayscale-dilation-and-erosion

Binary Dilation and Erosion
Цитировать
A faster implementation of binary dilation and erosion.
http://www.mathworks.com/matlabcentral/fileexchange/4152-binary-dilation-and-erosion

Rotate Image
http://www.mathworks.com/matlabcentral/fileexchange/4071-rotate-image
« Последнее редактирование: 08 ёоЫм 2010, 16:23:50 от monday2000 »

Alfizik

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Программные библиотеки растровой графики
« Ответ #6 : 09 ґХЪРСам 2010, 16:19:58 »
Право не знаю, уместен данный пост в этой теме или его надо в другую тему перенести, это уже на усмотрение модерации.

Прочитал в Википедии весьма любопытную статью про масштабирование растровой графики - http://ru.wikipedia.org/wiki/Масштабирование

Обратили на себя примеры увеличения ч\б текста разными алгоритмами. Особенно впечатлил алгоритм hq2x даже по сравнению с бикубической интерполяцией.

Цитировать
Для увеличения малоцветных изображений в малом разрешении лучше всего подходят специальные алгоритмы, разработанные для компьютерной графики (т.н. „pixel art“), позволяющие при незначительных искажениях точности прорисовки форм сохранить и подчеркнуть чёткие контуры и мелкие детали.

 
Слева бикубическое масштабирование, справа по алгоритму hq2x, разница налицо!

Исходное изображение:


Прошустрив интернет навскидку подобных алгоритмов оказалось не так уж и мало: EPX, Scale2x, Scale3x, AdvMAME2x, AdvMAME3x, Eagle, 2xSaI, Super 2xSaI, Super Eagle, семейство hqnx (hq2x, hq3x и hq4x).

О семействе hqnx можно почитать тут:
- http://ru.wikipedia.org/wiki/Алгоритмы_масштабирования_пиксельной_графики
- http://web.archive.org/web/20080208215126/http://www.hiend3d.com/hq3x.html

О Scale2x тут - http://scale2x.sourceforge.net/index.html

Имхо перспективные алгоритмы, кто, что думает?
« Последнее редактирование: 09 ґХЪРСам 2010, 16:23:51 от Alfizik »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программные библиотеки растровой графики
« Ответ #7 : 09 ґХЪРСам 2010, 16:44:34 »
Alfizik
Цитировать
Имхо перспективные алгоритмы, кто, что думает?
Я как-то уже наталкивался в своих поисках на такие алгоритмы. Но ведь это же, насколько я понимаю, кратное увеличение - в 2, 4 и т.д. раз. Так что вряд ли ИМХО в нашем деле это подходит.

Конечно, бикубическая интерполяция - не самое лучшее для ресемплинга. Есть и более изощрённые коммерческие методы интерполяции, дающие более высокое качество. Например, Geniune Fractals.

Alfizik

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Программные библиотеки растровой графики
« Ответ #8 : 10 ґХЪРСам 2010, 11:56:37 »
monday2000

1.
Цитировать
Но ведь это же, насколько я понимаю, кратное увеличение - в 2, 4 и т.д. раз.
Для hqnx да, для других затрудняюсь ответить, не вникал.

Конечно ограничение на увеличение только в целое число раз, ограничивает применение данных алгоритмов, но не делает их неприменимыми совсем. Зачастую задача при обработке сырых сканов и лежит в увеличении изображения в целое число раз (обычно в 2 раза).

Сканируют ведь в основном в 300 dpi, а в CK и СT чаще всего потом приводят их к 600 dpi. Насколько я понимаю делается это увеличением изображения в 2 раза (?).

Понятно, что для сфотографированных изображений данные алгоритмы не подойдут, хотя вполне возможно оправдает себя двухстадийная методика.
Объясню, допустим у нас есть фотографии в 257 dpi, вполне возможно их обычными алгоритмами (бикубическим или каким то подобным (я просто не в курсе какие алгоритмы используются в CK и СT)) привести к округленному значению (в данном случае к 300 dpi), а уж затем воспользоваться целочисленными алгоритмами (hqnx и т.п.) и довести изображения до 600 dpi.

Вполне вероятно, что такой двухстадийный подход даст качество более высокое чем однократное увеличение сразу в 600 dpi обычными алгоритмами (бикубическими и т.п.).

P.S.
Буду благодарен если просветите какие алгоритмы для увеличения используются в CK и СT.

2.
Цитировать
Например, Geniune Fractals

Не факт что Geniune Fractals даст хороший результат для битональных изображений с четкими границами (буквы). Все таки Geniune Fractals как мне кажется заточен для полноцветных изображений без резких переходов (пейзажи и т.д.).   
« Последнее редактирование: 10 ґХЪРСам 2010, 11:59:11 от Alfizik »

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программные библиотеки растровой графики
« Ответ #9 : 11 ґХЪРСам 2010, 19:55:31 »
Alfizik
Цитировать
Сканируют ведь в основном в 300 dpi, а в CK и СT чаще всего потом приводят их к 600 dpi. Насколько я понимаю делается это увеличением изображения в 2 раза (?).
Пожалуй, не в 2 раза, а тут квадратическая зависимость. Вообще я, честно, скептически настроен к этим алгоритмам. И не забывайте - в книгосканировании ресемплинг делается ещё до бинаризации - на серых сканах (а не на чёрно-белых). Поэтому и применяются обычные алгоритмы интерполяции.
Цитировать
Буду благодарен если просветите какие алгоритмы для увеличения используются в CK и СT.
Насколько я знаю, самые обычные и всем хорошо известные. Бикубический и т.п.


monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программные библиотеки растровой графики
« Ответ #10 : 21 ґХЪРСам 2010, 17:54:34 »
Некоторые новые интересные ссылки:

Detect image skew angle and deskew image

http://www.codeproject.com/KB/graphics/deskewimg.aspx

Это какая-то новая статья - от 29 Августа 2010.

Вот старая аналогичная статья:

How to deskew an image

http://www.codeproject.com/KB/graphics/Deskew_an_Image.aspx

2D Fast Wavelet Transform Library for Image Processing

http://www.codeproject.com/KB/graphics/2D_FWT_lib.aspx

Image Processing: Skin Detection, Some Filters and EXIF Tags

http://www.codeproject.com/KB/graphics/RedMatterLibrary.aspx

Handwriting Recognition using Kernel Discriminant Analysis

http://www.codeproject.com/KB/recipes/handwriting-kda.aspx

monday2000

  • Администратор
  • *****
  • Сообщений: 985
    • AOL клиент - -
    • Yahoo клиент - -
    • Просмотр профиля
    • Создание книг в электронном виде из бумажных книг (в формате DjVu)
    • E-mail
Re: Программные библиотеки растровой графики
« Ответ #11 : 22 ґХЪРСам 2010, 09:35:15 »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Re: Программные библиотеки растровой графики
« Ответ #12 : 16 °ЯаХЫм 2011, 01:43:20 »
Всё это дело, довольно легко можно реализовать с помощью ФШ. И подключаемых к нему плагинов, независимых производителей ;)
К слову. Нечто похожее на hq2x можно получить с помощью плагина от Alien Skin под названием BlowUp.
« Последнее редактирование: 17 °ЯаХЫм 2011, 03:21:24 от yuree »

Jennienat

  • Новичок
  • *
  • Сообщений: 7
    • ICQ клиент - 331182453
    • MSN клиент - gulbandrei@yandex.com
    • Просмотр профиля
    • Test, just a test
    • E-mail
Программные библиотеки растровой графики
« Ответ #13 : 18 ґХЪРСам 2015, 20:23:14 »
Народ
Кто-нибудь писал программную реализацию HDLC контроллера на DSP ?
Хорошо бы если у кого-нибудь завалялся оный написанный под AnalogDevice ADSP-219x
Если у кого есть отпишите plsss, можно на что-нибудь поменятся...

kennethrat

  • Новичок
  • *
  • Сообщений: 2
    • ICQ клиент - 372246451
    • MSN клиент - efcww@gmail.com
    • Просмотр профиля
    • Здравствуйте...
    • E-mail
Программные библиотеки растровой графики
« Ответ #14 : 30 ґХЪРСам 2015, 12:55:06 »
Мне кажется для этого контроллера искать универсальную графическую библиотеку библиотеку не стоит.
Достаточно закачать образы графических экранов во флэшь, например AT45.
и выкидывать их на экран, блоками. При этом достаточно написать несколько несложных функций, которые и будут составлять вашу графическую библиотеку. Памяти и стек они сожрут крайне мало, a скорость вывода на экран получается приличная. В память 4 мбит, можно без напряга загузить более 20 четырех цветных экранов 320x240 и еще останется место для шрифтов и хранения различных данных.