Pensando bem, não é um bicho de 7 cabeças ler o código de barras de uma imagem
Só parte teórica....
a Imagem vai ter preto, branco, preto, branco, etc. numa linha horizontal ou levemente inclinada.
Justamente a sequência do código de barras.
O que precisa:
1. Achar os pontos iniciais e finais em mais de uma linha, aonde começa o preto indicador de início e final.
2. Comparar as linhas, pra chegar num equilíbrio de qual é o código de barras, usando algum algorítimo de aproximação
3. converter os 0 e 1, ao contrário do que é feito na geração de código de barras. Talvez misturando o 2 e 3 pra deduzir algum erro.
Mas o principal: saber trabalhar com a imagem, pra pegar os pixels e cores... talvez essa seja a parte complicada.
QRCode... talvez parecido...
É interessante....
Pode acontecer tipo acima, numa imagem inclinada, considerando preto/branco como 0/1, então o programa por comparação chegaria a um conteúdo comum.
Ainda entra nisso se basear na largura, pra decidir qual o tamanho "unitário", afinal a foto pode estar ampliada/reduzida.
Como eu disse, é interessante.
Pode ser trabalhoso, mas seria fazer uma etapa de cada vez.
Importante também vai ser encontrar algorítimos bons e rápidos pra fazer isso.