Wednesday, February 25, 2009

How to save image without border?

=======
Q:

Hi there,

Whenever I save a figure using:
imshow(I)
print frame1.tif -f1 -dtiff

or by using:
h = imshow(I)
saveas( h, 'frame1.tif', 'tif' )

, I always get a white border around the image (which is
present in the figure window). Does anyone know how to just
save the image itself with no border around it?

Thanks

===
A:

>>set(gca, 'position', [0 0 1 1], 'visible', 'off')
>> print(3,'-djpeg','C:\Documents and Settings\My Documents\3.jpg');


======
Also

用matlab保存图片的四种方法:

1 直接从菜单保存,有fig,eps,jpeg,gif,png,bmp等格式。

2 edit------〉copy figure,再粘贴到其他程序。

3 用saveas命令保存图片

4 使用plot函数后紧接着用print函数。

print的三个参数:

(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.(2)单引号字符串,指定存储格式。

用gcf可以获取当前窗口句柄。

png格式:'-dpng'

jpeg: '-djpeg',

tiff: '-dtiff'

bmp: '-dbitmap'

(3)文件名。

详细用法请 help print

例:

>> x=-pi:2*pi/300:pi;
>> y=sin(x);
>> plot(x,y);
>> print(gcf,'-dpng','abc.png') % 保存为png格式的图片。

>> figure(2) % 新建一个句柄为2的图形窗口。
>> plot(x,cos(x)); % 在句柄为2的图形窗口上画图。
>> grid
>> print(2,'-djpeg','C:\abc.jpeg'); %将句柄为2的图形保存为jpeg/jpg格式的图片,文件名为'C:\abc.jpeg'。

Monday, February 16, 2009

FSPECIAL

help fspecial

FSPECIAL Create predefined 2-D filters.
H = FSPECIAL(TYPE) creates a two-dimensional filter H of the
specified type. Possible values for TYPE are:

'average' averaging filter
'disk' circular averaging filter
'gaussian' Gaussian lowpass filter
'laplacian' filter approximating the 2-D Laplacian operator
'log' Laplacian of Gaussian filter
'motion' motion filter
'prewitt' Prewitt horizontal edge-emphasizing filter
'sobel' Sobel horizontal edge-emphasizing filter
'unsharp' unsharp contrast enhancement filter

Depending on TYPE, FSPECIAL may take additional parameters
which you can supply. These parameters all have default
values.

H = FSPECIAL('average',HSIZE) returns an averaging filter H of size
HSIZE. HSIZE can be a vector specifying the number of rows and columns in
H or a scalar, in which case H is a square matrix.
The default HSIZE is [3 3].

H = FSPECIAL('disk',RADIUS) returns a circular averaging filter
(pillbox) within the square matrix of side 2*RADIUS+1.
The default RADIUS is 5.

H = FSPECIAL('gaussian',HSIZE,SIGMA) returns a rotationally
symmetric Gaussian lowpass filter of size HSIZE with standard
deviation SIGMA (positive). HSIZE can be a vector specifying the
number of rows and columns in H or a scalar, in which case H is a
square matrix.
The default HSIZE is [3 3], the default SIGMA is 0.5.

H = FSPECIAL('laplacian',ALPHA) returns a 3-by-3 filter
approximating the shape of the two-dimensional Laplacian
operator. The parameter ALPHA controls the shape of the
Laplacian and must be in the range 0.0 to 1.0.
The default ALPHA is 0.2.

H = FSPECIAL('log',HSIZE,SIGMA) returns a rotationally symmetric
Laplacian of Gaussian filter of size HSIZE with standard deviation
SIGMA (positive). HSIZE can be a vector specifying the number of rows
and columns in H or a scalar, in which case H is a square matrix.
The default HSIZE is [5 5], the default SIGMA is 0.5.

H = FSPECIAL('motion',LEN,THETA) returns a filter to approximate, once
convolved with an image, the linear motion of a camera by LEN pixels,
with an angle of THETA degrees in a counter-clockwise direction. The
filter becomes a vector for horizontal and vertical motions. The
default LEN is 9, the default THETA is 0, which corresponds to a
horizontal motion of 9 pixels.

H = FSPECIAL('prewitt') returns 3-by-3 filter that emphasizes
horizontal edges by approximating a vertical gradient. If you need to
emphasize vertical edges, transpose the filter H: H'.

[1 1 1;0 0 0;-1 -1 -1].

H = FSPECIAL('sobel') returns 3-by-3 filter that emphasizes
horizontal edges utilizing the smoothing effect by approximating a
vertical gradient. If you need to emphasize vertical edges, transpose
the filter H: H'.

[1 2 1;0 0 0;-1 -2 -1].

H = FSPECIAL('unsharp',ALPHA) returns a 3-by-3 unsharp contrast
enhancement filter. FSPECIAL creates the unsharp filter from the
negative of the Laplacian filter with parameter ALPHA. ALPHA controls
the shape of the Laplacian and must be in the range 0.0 to 1.0.
The default ALPHA is 0.2.

Class Support
-------------
H is of class double.

Example
-------
I = imread('cameraman.tif');
subplot(2,2,1);imshow(I);title('Original Image');
H = fspecial('motion',20,45);
MotionBlur = imfilter(I,H,'replicate');
subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred Image');
H = fspecial('disk',10);
blurred = imfilter(I,H,'replicate');
subplot(2,2,3);imshow(blurred);title('Blurred Image');
H = fspecial('unsharp');
sharpened = imfilter(I,H,'replicate');
subplot(2,2,4);imshow(sharpened);title('Sharpened Image');

See also conv2, edge, filter2, fsamp2, fwind1, fwind2, imfilter.

Reference page in Help browser
doc fspecial

gradient

code

[x,y] = meshgrid(-2:.2:2,-1:.15:1);
z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.15);
contour(x,y,z), hold on
quiver(x,y,px,py), hold off, axis image





------