How to reduce noise in a picture

The picture shown has some shapes in deep red color, while it has lots of noise.


These dotted noises are expected to be removed. How to remove these noise through numpy or opencv? I tryied some codes but did not make any difference. My codes are:

#fourier transform
FW = np.fft.fft2(image)
fshift = np.fft.fftshift(FW)
res = np.log(np.abs(fshift))
rows, cols = res.shape
crow,ccol = int(rows/2), int(cols/2) #中心位置
mask = np.zeros((rows, cols), np.uint8)
mask[crow-50:crow+50, ccol-50:ccol+50] = 1
fshift = fshift * mask
#inverse fourier transform
ishift = np.fft.ifftshift(fshift)
iimg = np.fft.ifft2(ishift)
iimg = np.abs(iimg)