Eu vim com um bom método para limpar imagens como essa, e funciona mesmo quando o plano de fundo ou a iluminação é irregular (ou seja, casos muito piores do que o exemplo nesta pergunta) e mantém a cor.
Minhas instruções são baseadas no Gimp, mas seria muito semelhante em outros programas como o Photoshop.
EDIT: O Gimp possui um filtro chamado "Diferença de Gaussianos", que implementa o processo descrito abaixo em uma etapa.
Primeiro, faça uma duplicata da camada:

Desfoque a camada copiada com um desfoque gaussiano. Use um tamanho de kernel grande o suficiente para não conseguir distinguir nenhum detalhe da imagem original. Eu usei 100px para a foto no post original.

Isso parecerá assim:

Em seguida, defina o "modo" da camada desfocada para "Dividir".

A imagem resultante deve ser a linha artística em um fundo branco.

O que você está fazendo aqui é essencialmente um filtro passa-alto na imagem, removendo as informações de baixa frequência (mudanças lentas na cor do plano de fundo) e mantendo as informações de alta frequência (a arte de linha).