1 | initial version |
In my opinion might be much simpler, you can use Canny edge detection method for doing this. As we know, the smooth object give less edge and rough object give more edges compared to smooth. The above method may work well for lower threshold values. After finding edge you can divide your image to number of blocks and check for strong edges(roughness) by counting pixels on each blocks. Then you can vote for each block and can decide whether the image is rough or not. From below image you can see that the the smooth object results less edges while the rough one cause more edges after Canny edge detection.
Smooth.jpg
Rough.jpg
I am not sure does it work for image with many other object or with verity of colours even if it smooth. But it should work with the similar image as you posted.
Hope these helpful.......
2 | No.2 Revision |
In my opinion might be much simpler, you can use Canny edge detection method for doing this. As we know, the smooth object give less edge and rough object give more edges compared to smooth. The above method may work well for lower threshold values. After finding edge you can divide your image to number of blocks and check for strong edges(roughness) by counting pixels on each blocks. Then you can vote for each block and can decide whether the image is rough or not. From below image you can see that the the smooth object results less edges while the rough one cause more edges after Canny edge detection.
Smooth.jpg
Rough.jpg
I am not sure does it work for image with many other object or with verity of colours even if it smooth. But it should work with the similar image as you posted.the above.
Hope these helpful.......