Visual applications depend on image quality for algorithmic decision-making, and atmospheric conditions such as smoke and haze produce a challenge to artificial systems that rely on identification of people, objects, and obstacles. Smoke is particularly difficult because of its nonhomogeneous characteristics and irregular image coverage. Nighttime images worsen the problem because of low light and artificial light conditions. Our aim was to develop an iterative process that removes smoke from images in daytime and nighttime scenes. The haze image model was used as our baseline model. First, we developed a detection method to find the smoky regions on the image and used the dark channel haze removal process to estimate the transmission map for each color channel. We ran the algorithm iteratively because a one-time process left residual smoke. Blue smoke produced an unbalanced particle density, so the blue color channel had to be corrected more times than red and green channels. Finally, we optimized the image in postprocessing, and the results produced smoke-free images. We believe our algorithm is the first to successfully remove nighttime smoke.