No es difícil para nada, de hecho lo puedes hacer fácilmente con inputs de tipo radio, pero todo depende 
¿Con que lo vas a hacer con php o jquery? Lo de las imágenes se puede hacer únicamente dandole estilos a los labels asociados (background-images) pero sí vas a usar imágenes embebidas el proceso es diferente, aunque con css también, se soluciona. 
Lo único que te recomiendo es que debes de ocultar el input así:    
Código CSS:
Ver original- .soyuninputtiporadio 
- { 
- opacity:0; 
- position: absolute; 
- clip: path(1px, 1px, 1px, 1px) 
- } 
No uses display: none, para eso. En fin, sí quieres pon una imagen de que piensas hacer o un demo (puede ser en codepen.io) y te sigo ayudando.