Abstract: A method of detecting a dynamic weather event includes the steps of: (a) receiving video images of a scene from a camera; (b) dividing each of the video images into multiple regions, in which a region is defined by a range of distances from the camera to objects in the scene; (c) selecting a region; and (d) segmenting the selected region into a plurality of three-dimensional (3D) image patches, in which each 3D image patch includes a time-sequence of T patches, with each patch comprised of N×M pixels, wherein N, M and T are integer numbers. The method also includes the following steps: measuring an image intensity level in each of the 3D image patches; masking 3D image patches containing image intensity levels that are above a first threshold level, or below a second threshold level; and extracting features in each 3D image patch that is not discarded by the masking step. Based on the extracted features, the method makes a binary decision on detecting a dynamic weather event.