I. Introduction
With the development of remote sensing technology, satellite images have become very useful in a variety of applications, including the following: Earth observation, climate change, and environmental monitoring. However, optical remote sensing images are often contaminated by clouds and cloud shadows since optical sensors acquire data at the visible and near-infrared wavelengths [1]. Cloud cover is considered to be a severe problem in optical images because it also leads to cloud shadow emerging. Both clouds and cloud shadows will degrade the utilization of image data and limit the use of these optical remote sensing images in further applications. For this reason, the process of removing clouds is necessary for improving the usefulness of optical remote sensing images.