OCR, играющий в карты [закрытый]

James Gosling уподобил Java разработки следующему:

"существует этот принцип о перемещении, когда Вы перемещаетесь от одной квартиры до другой квартиры. Интересный эксперимент должен собрать Вашу квартиру и поместить все в поля, затем переместиться в следующую квартиру и не распаковать что-либо, пока Вам не нужен он. Таким образом, Вы готовите свое первое блюдо, и Вы вытаскиваете что-то из поля. Затем приблизительно после одного месяца Вы использовали это, чтобы в значительной степени выяснить, в каких вещах в Вашей жизни Вы на самом деле нуждаетесь, и затем Вы берете остальную часть материала - забывают, насколько Вам нравится он или насколько прохладный это - и Вы просто выбрасываете его. Удивительно, как это упрощает Вашу жизнь, и можно использовать тот принцип во всех видах вопросов проектирования: не делают вещи просто, потому что они прохладны или просто потому что они интересны".

можно читать контекст кавычки здесь

, перегрузка оператора Basically является большой для класса что модели некоторая точка, валюта или комплексное число. Но после этого Вы начинаете заканчиваться примеры быстро.

Другим фактором было злоупотребление функцией в C++ операторами перегрузки разработчиков как '& &'; '||', операторы броска и конечно 'новый'. Сложность, следующая из объединения этого с передачей значением и исключениями, хорошо покрыта в Исключительный C++ книга.

11
задан Triptych 14 August 2009 в 20:24
поделиться

4 ответа

Я не думаю, что есть что-то уже написанное для того, что вы пытаетесь выполнить (по крайней мере, с открытым исходным кодом и на Python).

Что касается вашего второго вопроса, это зависит от того, что вы пытаются распознать. Если входные данные могут поступать из разных источников - например, от разных производителей игральных карт с разными стилями - тогда вам, вероятно, следует использовать алгоритм на основе машинного обучения (например, нейронную сеть или машину опорных векторов [ SVM]), чтобы он научился распознавать неизвестные входные данные. Однако, если входные данные всегда одинаковы по форме или стилю, тогда будет достаточно простого алгоритма сравнения изображений (например, сравнить пиксели срезанного верхнего левого угла с пикселями каждого ранга).

Если вы решите использовать алгоритм на основе машинного обучения, Я также думаю, что вам не нужны очень сложные функции, так как костюмы и ранги на самом деле не сильно различаются по форме или стилю, и вам должно быть хорошо, если в качестве функций вы будете использовать только пиксели левого верхнего угла.

Здесь есть игрушечный пример OCR , который может вас заинтересовать. Используемая библиотека (LibSVM) также имеет версию Python, которую я использовал и с которой очень легко работать.

Надеюсь, это поможет.

3
ответ дан 3 December 2019 в 11:21
поделиться

Лично я бы пошел по пути машинного обучения с этим.

1
ответ дан 3 December 2019 в 11:21
поделиться

Учитывая ограниченный размер выборки (4 костюма, 13 различных значений), я бы просто попытался сопоставить эталонное изображение костюма и значения с новым входным изображением. Сначала найдите ограничивающую рамку входящего костюма / значения (наименьшую рамку, включающую все небелые пиксели), отмасштабируйте свои эталонные изображения, чтобы они соответствовали размеру этого ограничивающего прямоугольника, и найдите наилучшее «совпадение» через абсолютную пиксельную разницу. Цвет изображения (например, красный или черный) сделает это еще проще.

1
ответ дан 3 December 2019 в 11:21
поделиться

Это не так надежно, но вы можете посмотреть на цвета 3 или 4 точек на карте, чтобы убедиться, что они белые или, если они цветные, вы можете определить, какая это карта и масть. Очевидно, это не сработает, если у вас не всегда одинаковые карты.

1
ответ дан 3 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: