Image cleaning - removing all regular shapes ( circles, squares, text, icons etc. )
I think the best way to get rid of those artifact shapes, is to implement an Shape Detection. Then, when you had coordinates of the unwanted shape, you can cut it out of your image. Then must fill its place with interpolating (through using background intensity values at the edges of the removed patch). 

Now, there are various methods for shape detection and even OpenCV OpenCV Implementation  and Aforge  Aforge Implementation  support some of them. First you must get image edges, then using Hough transforms for lines and circles, detect shapes. 

http://www.emgu.com/wiki/index.php/Shape_(Triangle,_Rectangle,_Circle,_Line)_Detection_in_CSharp

Finally as I said, cut out the image and fill out the removed patch through interpolation.