AlexandrSakhno
Я в новичок в питоне, поэтому не особо ориентируюсь в коде.
Тут нужно спроектировать программу сначала. То есть из-за отсутствия проекта программы ты и пытаешься взять готовые тапочки и сделать из них перчатки. Ну, у них же типа примерно одинаковый размер.
Нужно спроектировать программу сначала, а потом при её реализации использовать готовые исходные коды, которые у тебя есть. Причём использование идёт не напрямую, а просто этот имеющийся исходный код используется для построения нового исходного кода, предоставляя лишь свои фрагменты. Это связано с тем, что автор исходного кода, который у тебя есть, тоже не особо шарит в программировании, поэтому и не смог написать переиспользуемый модульный код, который прямо напрямую можно брать и использовать, просто перенастроив его под свою программу.
Так что начни сначала. Не ведись на похожесть программ. Тапочки похожи на перчатки по размеру и там тоже входное отверстие есть, но ты из них перчатки не сделаешь, максимум материал возьмёшь только и всё.
AlexandrSakhno
но что то не могу разобраться как это сделать
Начинай проектировать со словесного описания.
Представим, что у тебя есть программа уже готовая, которую ты написал уже. И мы начинаем следить за этой программой, чтобы выяснить, как она работает.
Ты запускаешь эту программу и происходит что? Она скачивает изображение и сохраняет его в директорию.
Когда она сохранила изображение в директорию происходит что? Она идёт в другую директорию и сопоставляет скачанное изображение с изображениями, которые в той другой директории лежат.
Когда они сопоставила изображение с известными изображениями и обнаружила совпадение происходит что? Она берёт имя откуда-то.
Откуда она берёт имя? Она берёт имя из какой-то структуры данных, в которой хранятся пары <известное имя, известное изображение>.
А где эта структура данных находится? Эта структура данных находится в каком-то файле, который загружается в программу предварительно.
А где находится этот файл при запуске программы? Этот файл лежит в директории с известными изображениями рядом. Значит, при запуске программы она сначала должна загрузить себе в память этот файл.
Когда программа определила имя распознанного изображения, что она дальше делает? Она сохраняет это имя в файл вывода с распознанным именем.
Когда имя распознано и лежит в своём файле, что происходит дальше? Дальше это имя берётся из файла и отправляется куда-то.
А кто берёт это имя из файла и отправляет его куда-то? Какая-то программа, которая даже не знает, откуда там это имя появилось. Ей и не нужно это знать, так как она только отправкой данных занимается.
В итоге у тебя вырисовывается два скрипта: один распознаванием занимается; второй занимается передачей данных. И эти скрипты не знают про деятельность друг друга. Ты можешь их, конечно, в один скрипт объединить, но лучше разделить их, потому что распознавание не всегда приводит к передаче данных куда-то в определённое место, а передача данных происходит далеко не всегда только для распознанных изображений. Вот тогда у тебя появляется модульность - то, чего нет у этого автора, чей исходный код ты взял, который даже использовать больше нигде нельзя без глубокой переработки.
Если же ты собрался делать программу без проектирования этой программы, то можешь пытаться, конечно, сделать пять пальцев в каждой тапочке, но ты время в итоге потеряешь просто, а результата не будет.
tags: project analysis