There is a numerical problem in Richardson-Lucy deconvolution algorithm. During the iterations, you should make sure all the values of the image should be within [0, 1]. Due to numerical problems, some very small negative floating number may be generated. Consequently, very large negative number could be obtained because of division operation in the algorithm. So you need to add some code to check the pixel value after each iteration.