You need to scan your original image, and if the value is not zero (meaning that there is a photon in the original CCD well or whatever the image represents) then you need to calculate the new location (row,col) by adding a deltax and deltay taken from a Poisson distribution. Then add the photon to the output location and (optionally) remove it from the input location.
outputImage = zeros(rows, columns);
for col = 1 : columns
for row = 1 : rows
if originalImage(row, col) > 1
newRow = round(row + random('Poisson', pd));
newCol = round(col + random('Poisson', pd));
outputImage(newRow, newCol) = outputImage(newRow, newCol) + 1;
originalImage(row, col) = originalImage(row, col) - 1;
end
end
end
See documentation for random() in the Statistics and Machine Learning Toolbox for info on how to get pd, the probability distribution object.
Best Answer