If you want to isolate the cross-section of your sample, I wouldn’t spend too much time on trying to remove the noise/dust. Just converting the image to a greyscale 8-bit image, doing a simple background subtraction, thresholding the image and using the particle analyzer to select the particle of an appropriate size for your cross-section does appear to do a pretty good job at creating a mask for your image (see image below). Here I used the mean auto-threshold method, but you could adjust the threshold if the outline is too large.
I include the macro code for the steps I used to create the mask.
I hope this helps,
run("RGB Color"); //convert stack to RGB image
run("8-bit"); //convertRGB to 8-bit greyscale
run("Subtract Background...", "rolling=100 light"); //subtract background
setAutoThreshold("Mean"); //set threshold using method 'Mean'
run("Convert to Mask"); //apply threshold and convert to mask
run("Analyze Particles...", "size=1-Infinity show=Masks exclude clear include add"); //filter particles by size, create mask and add to ROI manager