matlab中imhist的问题
一种解决方法如下,我们希望在imhist中纵坐标以对数显示。
在命令窗口中打入 edit imhist 调用 imhist.m文件,然后修改代码
function plot_result(x, y, cm, isScaled, classin, range)
n = length(x);
y=log10(y); % 这一行是加上去的
stem(x,y, 'Marker', 'none')
hist_axes = gca;
保存后再运行imhist命令。使用代码如下
clear,clc;
close all;
ImageData=imread('a.bmp');
subplot(211);
imshow(ImageData,256);
subplot(212);
imhist(ImageData,256);
效果对比如下:
纵坐标变成了灰度点数目的对数。
之后需要把imhist文件改回原样。本来我也希望能把imhist文件copy出来做一个函数,但是直接copy一个新函数似乎出现了问题。所以暂时用的话这个方法可以。
另外一种方法是 用 axis([0,255,0,ylim]); 命令给出显示范围,ylim为y坐标上限。这样细节部分会显示更清楚,但是有一部分图形会显示不到,需要在图中标注或者在文中说明。
广告 您可能关注的内容 |