【问题标题】:Gaussian Blobs in MATLABMATLAB 中的高斯斑点
【发布时间】:2014-03-30 10:05:55
【问题描述】:

我正在尝试生成不同强度(黑色、灰色、白色)和对比度的高斯斑点,但是,我应该在下面的代码中更改哪个参数?

非常感谢!

imSize = 300;                           % image size: n X n
lamda = 10;                             % wavelength (number of pixels per cycle)
theta = 15;                              % grating orientation
sigma = 50;

imSize = 300;
% make linear ramp
X = 1:imSize;                           % X is a vector from 1 to imageSize
X0 = (X / imSize) - .5;                 % rescale X -> -.5 to .5
[Xm Ym] = meshgrid(X0, X0);
s = sigma / imSize;  

gauss = exp( -(((Xm.^2)+(Ym.^2)) ./ (2* s^2)) ); % formula for 2D gaussian
%%%%%%% NEW VARIABLES
trim = .005;                             % trim off gaussian values smaller than this
gauss(gauss < trim) = 0;                 % trim around edges (for 8-bit colour displays)

imagesc( gauss, [-1 1] );                        % display
colormap gray(256);
axis off; axis image;     % use gray colormap

【问题讨论】:

  • 如果我正确理解了您的“blob”概念,您是否得到了预期的结果 - figure,imshow(gauss)
  • 您好,非常感谢您的回复!但是当我做图时,我得到的是背景强度的变化。我想做一个操作,将背景保持在灰度级,但改变高斯斑点本身的亮度(灰色背景上的深灰色,灰色背景上的白色或黑色等)
  • 所以基本上,问题是,我怎样才能得到 0 和 -1 之间的 y 轴范围,而不是 0 和 1... 或任何其他对比,即 0 和 0.5 或 0。和 -0.5 等

标签: matlab blob gaussian contrast


【解决方案1】:

尝试以下选项之一 -

gauss = 2*(gauss-0.5); %%// For a range of [-1 1];
imagesc( gauss, [-1 1] ); 

或者

gauss = gauss/2; %%// For a range of [0 0.5];
imagesc( gauss, [0 0.5] ); 

或者

gauss = 0.5*(gauss-1); %%// For a range of [-0.5 0];
imagesc( gauss, [-0.5 0] ); 

【讨论】:

  • 是的,我也意识到了这一点。或高斯 = -1*(高斯); %%// 对于[-1 1]的范围;图像(高斯,[-1 1]);也适用于灰色背景上的黑色斑点。
  • 一切都是为了相应地改变范围! :)
猜你喜欢
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 2018-12-26
  • 2016-08-17
  • 2012-02-20
  • 1970-01-01
  • 2011-02-15
  • 2017-04-20
相关资源
最近更新 更多