图片处理:明明使用了imagesc ,怎么不出图片呢
本帖最后由 南北左右 于 2011-9-27 16:07 编辑这个程序前一部分是求一组图片的像素平均值,后一部分是以此作为背景,去除掉,使用imagesc但是不出图
close all; clear all; clc;
% calibration base
ui_h3=msgbox('Calibration Base : Please choose a file','Notice');
uiwait(ui_h3);
=uigetfile({'*.bmp;*.tif';'image files(*.bmp,*.tif)';'*.*';'all file'},'Select calibration images','MultiSelect','on');
if pname==0;
error('Please choose a file');
end
if iscell(fname)
fname=sort(fname);
img_num=length(fname);
else
t_n=fname;
fname=cell(1,1);
fname{1,1}=t_n;
img_num=1;
end
BASE=zeros(1024, 1280);
total_coord=[];
total_ref_vec=cell(img_num,1);
h=waitbar(0,'please waite');
for k=1:img_num
fullpath{1,1}=fullfile(pname,char(fname(k)));
orig=imread(fullpath{1,1});
orig=double(orig);
BASE=BASE+orig;
end
CalBase=BASE/img_num;
close(h)
% removebackground
ui_h3=msgbox('Calibration please choose a file','Notice');
uiwait(ui_h3);
=uigetfile({'*.bmp;*.tif';'image files(*.bmp,*.tif)';'*.*';'all file'},'Select calibration images','MultiSelect','on');
if pname==0;
error('please choose a file');
end
if iscell(fname)
fname=sort(fname);
img_num=length(fname);
else
t_n=fname;
fname=cell(1,1);
fname{1,1}=t_n;
img_num=1;
end
total_coord=[];
total_ref_vec=cell(img_num,1);
h=waitbar(0,'please waite');
for k=1:img_num
fullpath{1,1}=fullfile(pname,char(fname(k)));
orig=imread(fullpath{1,1});
orig=double(orig);
modi=orig./CalBase;
modi2=uint8(modi);
figure
imagesc(modi2, )
colormap(jet)
clim = get(gca, 'clim');
levels = 10;
target = grayslice(modi2, linspace(clim(1), clim(2), levels));
map = jet(levels);
imwrite(target, map, ['#' char(fname(k))])
close
end
close(h); 怎么个不出图?是白一片黑一片,还是窗口不弹出来?如果是显示问题的话,将换成数据的最大最小值试试。
另外常见一个可能问题是数据类型的问题。或者换下显示函数,比如
imshow 本帖最后由 南北左右 于 2011-9-27 21:53 编辑
alexqxp 发表于 2011-9-27 17:06 http://forum.simwe.com/static/image/common/back.gif
怎么个不出图?是白一片黑一片,还是窗口不弹出来?如果是显示问题的话,将换成数据的最大最小值试 ...
是完全不出图片,用imshow的话出现了图,但是全部是黑的,同时也出现错误;修改的值 也还是每天图片。。请问知道怎么改正吗? 你把显示数据变换到0和1之间再用imshow显示试试。
估计减法运算后出现了负值,无法显示。
页:
[1]