Fire detection has long been an important research topic in image processing and pattern recognition, while smoke is a vital indication of fire’s existence. However, current smoke detection algorithms are far from meeting the requirements of practical applications. One major reason is that the existing methods can not distinguish smoke from fog because their colors and shapes are both very similar. This paper proposes a novel texture analysis based algorithm which has the ability to classify smoke and fog more efficiently. First the texture images are decomposed using Contourlet Transform (CT), and then we extract the feature vector from Contourlet coefficients, finally we make use of Support Vector Machine (SVM) to classify the textures. Experiments are performed on the sample images of smoke and fog taking accuracy rate of classification as evaluation criterion, and the accuracy rate of our algorithm is 97%. To illustrate its performance, our method has also been compared with the algorithms using Gray Level Co-occurrence Matrixes (GLCM), Local Binary Pattern (LBP) and Wavelet Transform (WT).