Проблема:
Представьте, что есть датчик фотографического c с 1024x768 пикселей, каждый пиксель имеет 1x1 мм. Круговой луч света попадает на датчик. Луч имеет гауссов профиль.
Я хотел бы получить интенсивность для каждого пикселя и общую интенсивность на датчике (в случае, если я отключил некоторые пиксели).
My решение:
Создать нулевую матрицу из 1024x768 элементов. Рассчитайте круговую площадь света, который попадет на датчик. Если область четко определена, пиксели границы будут частично затронуты. Создайте гауссовский профиль для этой области и рассчитайте интенсивность пикселей для каждого пикселя.
Что вы думаете? У меня много сомнений, как это сделать ... Можете ли вы помочь мне?
Я уже закодировал это:
% system
clc;
close all;
imtool close all;
clear;
workspace;
% image size
sizeX = 1024;
sizeY = 768;
% beam circle
centerX = sizeX/2;
centerY = sizeY/2;
radius = sizeY/2;
% sensor+beam
dmd = zeros(sizeY, sizeX);
[row column] = meshgrid(1:sizeX, 1:sizeY);
dmd = (column - centerY).^2 + (row - centerX).^2 <= radius.^2;
% plot
subplot(1,2,1);
imshow(dmd, []);
title('Circular Beam over DMD', 'FontSize', 14);
axis on;
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
x=repmat(linspace(-4,4,sizeY),sizeY,1);y=x';%'#this comment is to fix highlighting in Stackoverflow.
sigma=2;
gauss=exp( -x.^2/(2*sigma^2) - y.^2/(2*sigma^2));
% plot
subplot(1,2,2);
imshow(gauss, []);
title('Gaussian Profile', 'FontSize', 14);
axis on;
Заранее спасибо. Приветствия