解决方法:
imshow(I/256); -----------将图像矩阵转化到0-1之间;
imshow(I,[]); -----------自动调整数据的范围以便于显示;
imshow(A,'InitialMagnification','fit')。
matlab简介:
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
imshow(A,'InitialMagnification','fit')
图像放大有很多算法,我不知道你需要哪种。可以用matlab自己带的函数实现。
比如下面的函数是对输入图像x做放大,放大倍数是factor,放大方法(就是内插方法)是mode、可以是'cubic', 'linear'等.
调用方法是
F = MyInterp2(x, 2, 'cubic');
function result = MyInterp2(x, factor, mode)
%x input data
%factor size of zoom
%mode the mode of interpolation
[nRowLR, nColumnLR] = size(x);
nRowHR = nRowLR * factor;
nColumnHR = nColumnLR * factor;
[X_LR, Y_LR] = meshgrid(1:factor:nColumnHR, 1:factor:nRowHR);
[X_HR, Y_HR] = meshgrid(1:nColumnHR, 1:nRowHR);
result = interp2(X_LR, Y_LR, x, X_HR, Y_HR, mode);
result(isnan(result))=0;