Removing Noise from Dental Radiography
As far as I understood, by image derivation you mean extracting edges. I would recommend to filter the image by a relatively large Gaussian filter. If computational cost of image derivation is uncritical to your work, I would recommend using canny edge detector. It is less sensitive to noise and does not fool by noise, and finds weak edges along with strong edges. Matlab instruction for that:

   [MinThresh MaxThresh]=[-0.3 0.5];
   EDGE_No_SMOKE=edge(im,'canny',[MinThresh MaxThresh]);


and the result is (I know it might not be the results you're seeking, however playing with Threshold variables and filter size will bring you desirable results):

 

Note that you do not see smoky effect anymore. Also about those wrong edges, you can remove them using image opening and closing techniques.