Покерные фишки в категории «Подарки, хобби, книги»
Покерные фишки 100
На складе
Доставка по Украине
189.99 грн
Купить
Покерный набор на 200 фишек с номиналом в металлической коробке «Техасский холдем»
На складе
Доставка по Украине
530 грн
Купить
Покерные фишки 40шт (28900)
На складе
Доставка по Украине
71 грн
Купить
Набор покерных фишек без номинала «Style M 200»
На складе
Доставка по Украине
2 700 грн
Купить
Подставка для покерных фишек (трей, лоток для фишек), акриловая
На складе
Доставка по Украине
247.10 грн
Купить
Игровой набор Сhess Set 3 в 1 Шахматы Покерные фишки 200 шт Кости в деревянном кейсе
На складе в г. Киев
Доставка по Украине
949 грн
1 000 грн
Купить
Покерный набор «All in» 200 фишек
На складе
Доставка по Украине
2 520 грн
Купить
Покерный набор на 300 фишек «Monte Carlo Millions»
На складе
Доставка по Украине
4 770 грн
Купить
Покерный набор на 500 фишек «Monte Carlo Millions»
На складе
Доставка по Украине
7 335 грн
Купить
Покерный набор в металлической коробке на 500 фишек с номиналом
На складе
Доставка по Украине
1 000 грн
Купить
Покерный набор на 200 фишек с номиналом в металлической коробке «Техасский холдем»
На складе
Доставка по Украине
532 — 540 грн
от 2 продавцов
540 грн
Купить
Покерные фишки (100 фишек)(20х12,5х5 см)(вес фишки 4 гр. d-39 мм)
Доставка по Украине
262.24 — 301 грн
от 3 продавцов
263.50 грн
Купить
Набор для покера и вина на 2 бутылки размером 18 x 36 x 21 см, на 200 покерных фишек четырех цветов
На складе
Доставка по Украине
1 000 грн
Купить
Покерный набор в металлической коробке на 500 фишек с номиналом №500T
На складе
Доставка по Украине
1 050 грн
Купить
Покерные фишки 100 фишек 20х12,5х5см (18980)
На складе
Доставка по Украине
246 грн
Купить
Смотрите также
Покерный набор на 200 фишек без номинала в алюминиевом чемоданчике на замке
На складе
Доставка по Украине
1 308 грн
1 408 грн
Купить
Покерный набор с номиналом на 300 фишек в алюминиевом кейсе на ключе
На складе в г. Одесса
Доставка по Украине
2 150 грн
Купить
Одесса
Покерный набор в металлической коробке на 100 фишек
На складе в г. Одесса
Доставка по Украине
270 грн
360 грн
Купить
Одесса
Покерные фишки в блистере 100 фишек с номиналом
Заканчивается
Доставка по Украине
172 грн
Купить
Харьков
Покерные фишки ( 100 фишек )
Доставка по Украине
305 грн
Купить
Набор для покера 200 фишек — Покерные наборы
На складе
Доставка по Украине
по 780 грн
от 2 продавцов
780 грн
Купить
Покерные Фишки (40 Шт)(Вес Фишки 4 Гр. D-39 Мм) 28900
Доставка по Украине
по 115 грн
от 2 продавцов
115 грн
Купить
Покерные Фишки В Блистере (100 Фишек)(19Х20Х4 См)(Вес Фишки 4 Гр. D-39 Мм) 26721
Доставка по Украине
по 290 грн
от 2 продавцов
290 грн
Купить
УЦЕНКА! Покерный набор на 300 фишек в металлической коробке, номинал 1-50. 4g-chips
Доставка по Украине
510 грн
Купить
Покерный набор на 300 фишек с номиналом в кейсе. 11,5g-chips
Доставка по Украине
1 950 грн
Купить
Покерный набор на 300 фишек БЕЗ номинала в серебристом кейсе. 11,5g-chips
Доставка по Украине
1 600 грн
Купить
Покерный набор на 200 фишек БЕЗ номинала в серебристом кейсе. 11,5g-chips
Доставка по Украине
1 250 грн
Купить
Покерный набор на 300 фишек в алюминиевом кейсе, номинал 5-1000 цветной, фишки 11,5g
Доставка по Украине
3 050 грн
Купить
Покерный набор: 100 фишек без номинала, 2 колоды карт, 5 кубиков в подарочном мешке
Заканчивается
Доставка по Украине
419 грн
500 грн
Купить
Распознаем покерные фишки
Дмитрий Костромин, 8 Декабря 2016
Обычно статьи про компьютерное зрение рассказывают о распознавании лиц и автомобильных номеров. Но мало кто знает, что эту технологию используют в казино для сбора статистики.
Игровой стол записывают на видео, считывают карты и ставки игроков.
В этой статье рассмотрим подход к распознаванию покерных фишек. Приведенный алгоритм применим как для изображений, так и для видео. Реализовать этот подход можно, например, с помощью OpenCV, в котором уже присутствуют стандартные алгоритмы.
Что будем делать
Необходимо найти стопку покерных фишек и определить ее стоимость.
Покерный стол и фишки будем рассматривать такие, как на скриншоте ниже.
Рисунок 1: Покерный стол
При этом считаем, что камера закреплена и стоит всегда в одинаковом месте. Это условие используем лишь для того, чтобы выделить на покерном столе небольшие сегменты, в которых ищем фишки. Эти сегменты будем использовать как исходные данные.
Рисунок 2: Исходные данные. Первый образец
Рисунок 3: Исходные данные. Второй образец
Считаем также, что камера выровнена горизонтально, то есть стопка фишек почти вертикальная. Также допустим, что стопка выглядит как цилиндр, без вылезающих фишек. Все фишки имеют одинаковую толщину.
Стираем задний план
Прежде всего отфильтруем стол от стопки фишек. Для этого подойдет сегментация изображения методом GrabCut.
При этом нам будут мешать узоры на столе (желтоватая окружность). Их можно легко убрать с изображения, заменив все цвета близкие к желтому на черный.
Рисунок 4: Фильтрация узоров. Первый образец
Рисунок 5: Фильтрация узоров. Второй образец
Затем воспользуемся сегментацией изображения.
Рисунок 6: Без заднего плана. Первый образец
Рисунок 7: Без заднего плана. Второй образец
Ищем верхушку стопки
Чтобы отыскать количество фишек в стопке, нам придется отыскать какие-то характерные детали на изображении. Первое, что приходит в голову — это разделительные линии между фишками. Но они не ярко выраженные, и на некоторых изображениях не видны. Однако, даже в этом случае мы легко скажем, сколько фишек в стопке.
На первый взгляд отыскать маркеры не составляет труда — ведь они белые, а значит состоят из самых ярких точек изображения. Но это не так, таковыми являются только маркеры на верхушке стопки, потому что они хорошо освещены. На боковую часть стопки свет падает под углом и поэтому яркость у боковых маркеров небольшая.
Это сыграет нам на руку, потому что мы сможем отыскать 6 маркеров с верхушки стопки. Для этого переведем изображение в градации серого и возьмем порог с довольно большим значением. Потом найдем контуры полученных объектов и отфильтруем их по размеру.
В итоге получим изображение, на котором есть по крайней мере 5 маркеров с крышки стопки. Ниже показаны изображения, растянутые по вертикали для наглядности.
Рисунок 8: Белые маркеры с верхушки стопки. Первый образец
Рисунок 9: Белые маркеры с верхушки стопки. Второй образец
О проблемах с формой фишки
Найти количество фишек было бы гораздо проще, если бы стопка имела прямоугольную форму вместо проекции цилиндра. Попробуем это исправить.
Можно попробовать обратить проекцию, но тогда придется учитывать углы камеры, которые нам неизвестены. Есть способ получше. Он основан на том, что нет нужды обращать проекцию полностью. Достаточно лишь вернуть контурам прямоугольный вид. Внутренность фишек — почти монотонный цвет, деформации этих областей не добавят никаких искажений.
Найдем эллипс — границу верхушки стопки. Граница каждой фишки совпадает с сегментом этого эллипса. Поднимем каждую полоску изображения шириной в 1 пиксел на то значение, которое является “ординатой уравнения эллипса”.
Рисунок 10: Схема выправления стопки фишек.
Ищем эллипс
Как найти уравнение этого заветного эллипса? Его можно провести через известные маркеры с верхушки стопки. Но найденные маркеры представляют собой контуры и необходимо выбрать на каждом контуре одну точку, которая будет представлять этот маркер.
Найдем самую “удаленную” точку на контуре маркера.
Расстояние от центра эллипса до этой точки максимально. 2 = 1
где x_i, y_i — координаты известной i-ой точки на эллипсе.
Сколько необходимо взять точек? Столько же сколько и неизвестных, тогда количество уравнений и количество неизвестных совпадут и система сможет иметь однозначное решение. На деле она всегда будет иметь решение, так как мы знаем, что искомый эллипс существует (он нарисован на изображении). Если же решения нет, то это означает, что положения маркеров найдены неверно.
x = x` + x0 y = y` + y0
и подставим в уравнение эллипса.
Получим эллипс, центр, которого уже может располагаться где угодно. Теперь количество неизвестных четыре. Но и этого будет недостаточно.
Камера не всегда расположена удачно, она выровнена так, что оси эллипса лишь приблизительно параллельны осям координат. Поэтому добавим поворот на угол alpha:
x` = x`` * cos(alpha) - y`` * sin(alpha) y` = x`` * sin(alpha) + y`` * cos(alpha)
и подставим в уравнение эллипса со сдвигом. Получим эллипс наиболее общего вида. Неизвестных теперь 5 — a, b, x0, y0, alpha. Для их поиска потребуется знать 5 точек на эллипсе, поэтому 5 маркеров нам будет ровно в самый раз.
Нелинейную систему из 5 уравнений можно решить, например, методом Ньютона. Точность вычислений для x0, y0, a, b ограничивается 1 пикселем, а для угла alpha точность следует подобрать. Начальное приближение выбрать совсем несложно: для x0, y0 — это найденный ранее центр масс системы маркеров, для alpha — это 0, так как угол считается малым (камера стоит почти ровно), радиусы a, b — можно найти из прямоугольника, который описывает систему из 5 маркеров.
Рисунок 13: Найденный эллипс. Первый образец
Рисунок 14: Найденный эллипс. Второй образец
Выпрямляем стопку
Имея на руках уравнение эллипса верхушки стопки можно получить изображение фишек “без искажений”. Для этого следует разбить изображение на вертикальные полосы шириной в 1 пиксел и каждую полосу сдвинуть вверх на нижнюю ординату эллипса.
Рисунок 15: Схема выправления стопки фишек.
Таким образом, нижняя часть эллипса превратится в прямую линию, а изображение фишек превратится в набор горизонтальных прямоугольников.
Рисунок 16: Выправленная стопка фишек. Первый образец
Рисунок 17: Выправленная стопка фишек. Второй образец
Как видно из рисунков, выправление происходит не так гладко, даже несмотря на то, что эллипс найден довольно точно.
Результат зависит от того, насколько малы углы камеры и насколько стопка отличается по форме от цилиндра.
Также можно видеть, что левая и правая части изображения выправлены довольно грубо, в то время как центральная часть — приемлемо.
Это неудивительно, потому что именно по краям стопка была наиболее искривлена.
Дальше будем использовать только центральную часть найденного изображения, шириной примерно в треть.
Ищем высоту одной фишки
Дальнейшее распознавание кажется простым, однако здесь есть проблема — необходимо отыскать высоту одной фишки.
Если в стопке есть цвет, у которого только одна фишка, то отыскать размер фишки не представляет труда. Для этого нужно разбить изображение на сегменты по цвету. Затем вычислить высоту каждого сегмента. Минимальная из них будет высотой одной фишки.
Можно улучшить точность этого метода, если учесть, что высота фишки всегда делит высоту изображения (то есть отношение второго к первому есть целое число), потому что изображение состоит только из фишек, и все они имеют одинаковую толщину. Пусть h0 — вычисленная высота одной фишки, а H — высота изображения, тогда количество фишек C и уточненная высота одной фишки h2 равны:
C = round(H / h0) h2 = H / C
Тем не менее, условие, что в стопке всегда есть обособленная фишка слишком сильное.
Здесь тоже есть свои ограничения.
Маркеры могут находиться строго друг под другом, а тогда две фишки склеются для компьютера.
Вероятность такого события не столь велика.
Если рассматривать “строго друг под другом” так, что абсциссы маркеров у двух фишек совпадают, то вероятность равна нулю.
На практике это ограничение будет означать, что абсциссы маркеров двух фишек отличаются менее, чем на 1 пиксел.
Поэтому вероятность такой коллизии, будет равна 3 / W
, где W — ширина изображения.
Это так, потому что по периметру фишки находятся 6 маркеров, а камера видит примерно половину периметра фишки, то есть из всех абсцисс “удачными” для коллизии, будут только 3. При W=300
вероятность коллизии равна 1%.
А вероятность P10 того, что в стопке из 10 фишек будет хотя бы одна коллизия:
P10 = 1 - (1 - p)^9 = 1 - (1 - 0.9 = 0.086
то есть 8.6%.
Для приемлемого алгоритма не стоит накладывать больше никаких дополнительных ограничений.
Найдем для каждого маркера его левую границу. Для этого вычислим горизонтальный градиент черно-белого изображения. Левые границы маркеров практически строго вертикальные, поэтому они будут присутствовать на градиенте. Однако также там будут и правые границы. Если же взять только положительные значения градиента, то на изображении останутся только левые границы, так как на правых границах яркость изображения падает (с яркого маркера на темную фишку). На рисунке ниже показан возможный результат.
Рисунок 18: Левые границы маркеров. Первый образец
Рисунок 19: Левые границы маркеров. Второй образец
В идеале все высоты найденных контуров должны совпадать и равняться высоте одной фишки.
Как видно из рисунка это не так.
Возьмем за высоту фишки медианное среднее из всех высот контуров.
Это даст хороший результат в предположении, что большинство найденных контуров практически точные, а случайно испортившихся контуров мало.
Медианое среднее даст хороший результат только в том случае, если левые границы маркеров нигде не склеются в одну большую, а это, как было вычислено ранее, случается не так уж редко. В этом случае перед тем, как вычислять среднее, оставим только те контуры, которые удовлятворяют такому условию:
min_height < h < Z * min_height 1 < Z < 2
где min_height — минимальная высота всех контуров, h — высота допустимого контура, Z — коэффициент допустимости. Суть условия в том, что высоты контуров хоть и могут отличаться, но не настолько сильно, как отличается высота одной фишки от высоты двух.
Каким выбрать коэффициент Z? Не стоит брать его равным 2, так как высота двух фишек тоже неточная и может варьироваться (то есть может оказаться меньше чем 2 * min_height
).
Если выбрать “наименьшее из двух зол” — 1.5, то результат получается неплохой.
Можно немного уточнить Z, исходя из эвристического соображения, что если высота одной фишки может отличаться на w, то высота двух фишек отличается на 2*w, поэтому соотношение “двух зол” не 1:1, а 1:2. То есть Z = 1.33.
В итоге, чтобы найти высоту одной фишки необходимо:
- Найти левые границы маркеров с помощью горизонтального градиента
- Отфильтровать границы по размеру (чтобы не сильно отличались по высоте от минимальной)
- Найти медианое среднее высот границ
- Улучшить полученное значение с учетом того, что высота фишки делит высоту стопки
Определяем цвета фишек
На данном этапе имеем изображение стопки фишек в виде горизонтальных прямоугольников. Высота каждого прямоугольника одинакова и известна. Значит можно разбить изображение на n горизонтальных полосок, где n — количество фишек в стопке.
Если для каждой полоски найти цвет, то можно будет сказать сколько фишек определенного цвета в стопке.
Пусть палитра цветов фишек состоит из 5 цветов — красный, синий, зеленый, черный и белый (таковы цвета фишек из тестовых образцов).
Необходимо определить цвет полоски из палитры. Для этого достаточно найти “средний” цвет полоски и найти ближайший к нему цвет из 5-ти предложенных.
Чтобы это формализовать, придется определить понятие среднего цвета и определить расстояние между цветами (ввести метрику).
Средний цвет можно легко вычислить, если взять среднее арифметическое rgb-компонент цветов. Но здесь, как и на этапе вычисления высоты фишки больше подойдет медианное среднее, так как точек с полезными цветами много, а цветовой “шум” может быть большим по величине. Но как вычислить медианное среднее? Ведь для этого необходимо сначала отсортировать цвета, а они представляются векторами.
Отложим вопрос о среднем.
Как ввести расстояние между цветами?
В понятии расстояния должна содержаться информация о том, как мы различаем фишки.
Если две одинаковые фишки освещены по-разному их все равно признают за одну и ту же фишку.
Поэтому яркость цвета в этом вопросе не важна, а значит удобно рассмотреть представление цвета в виде HSV (упрощенно — оттенок, насыщенность, яркость). Насыщенность тоже не сильно влияет на цвет фишки — едва ли встречаются фишки бледно-красного и ярко-красного цветов.
Заметить различие между цветами гораздо проще, если они имеют разные оттенки.
В самом деле, цвета из палитры очень сильно отличаются по оттенку (красный, синий, зеленый).
В фишках другой расскраски бывают еще желтые и фиолетовые цвета.
Таким образом, наилучшее расстояние для цветов фишек — это разность оттенков.
Однако, оттенок не определен у черного и белого цветов. Более того, монохроматические (градации серого) цвета следует сравнивать по яркости. Таким образом метрика для немонохроматических цветов p1 это разность оттенков, а для монохраматических p2 — это разность яркостей.
p1(x, y) = |x.hue - y.hue| p2(x, y) = |x.value - y.value|
где x, y — цвета, а hue, value — их оттенок и яркость соответственно.
Таким образом, сначала следует определить является ли фишка цветной или черно-белой. Затем, необходимо оставить в рассмотрении только те точки изображения, которые обладают такой же “цветностью” как и фишка.
В первом случае характеристикой цвета для нас будет оттенок, во втором — яркость.
Для этих характеристик медианное среднее вычисляется обычным образом, а расстояние введено выше (тоже обычным образом). Вычислив средний цвет фишки, можно найти максимально приближенный к нему цвет из палитры.
Остался вопрос — как определить является ли фишка цветной? По значению насыщенности. Можно подобрать порог насыщенности, выше которого будем считать фишку цветной, а ниже — черно-белой.
Рисунок 20: Фишки с цветами. Слева — горизонтальные полоски, справа — вычисленные по изображению цвета. Первый образец
Рисунок 21: Фишки с цветами. Слева — горизонтальные полоски, справа — вычисленные по изображению цвета. Второй образец
Результат
Резюмируя, для того чтобы распознать фишки и их цвета, мы проделали следующие этапы:
- Удалить фон на изображении
- Найти эллипс верхушки стека по белым маркерам
- Убрать кривизну стека
- Найти высоту одной фишки по белым маркерам
- Определить цвет каждой фишки
Metal Poker Chips — Etsy.

Etsy больше не поддерживает старые версии вашего веб-браузера, чтобы обеспечить безопасность данных пользователей. Пожалуйста, обновите до последней версии.
Воспользуйтесь всеми преимуществами нашего сайта, включив JavaScript.
Найдите что-нибудь памятное, присоединяйтесь к сообществу, делающему добро.
( 112 релевантных результатов, с рекламой Продавцы, желающие расширить свой бизнес и привлечь больше заинтересованных покупателей, могут использовать рекламную платформу Etsy для продвижения своих товаров. Вы увидите результаты объявлений, основанные на таких факторах, как релевантность и сумма, которую продавцы платят за клик. Узнать больше. )
покерных фишек — Свобода
Liberty предлагает 5 различных стилей покерных фишек в соответствии с вашими потребностями.
Эксклюзивные пользовательские фишки для покера с 12 полосами
Фишка с вкладышем, 11,5-граммовые заполненные глиной профессиональные фишки для покера. Индивидуальная область вкладыша составляет 1,25 дюйма в диаметре.
Доступные цвета: красный, лавандовый, голубой, золотой, зеленый, розовый, синий, бежевый, желтый, серый
Карточные фишки для покера на заказ
Фишка-вкладыш Cardsuit, 8,9 (приблизительно) граммов заполненных глиной профессиональных фишек для покера. Пользовательская область инкрустации составляет 1 ″ в диаметре.
Доступные цвета: зеленый, черный, фиолетовый, бежевый, красный, синий
3 фишки для покера на 3 спота
3 фишки для покера, заполненные глиной профессиональные фишки для покера весом 8,9 (приблизительно) грамм.
Доступные цвета: красный, оранжевый, зеленый, золотой, шелковичный, лавандовый, розовый, синий, желтый, черный, бежевый
Индивидуальные покерные фишки с 6 полосами
Фишка с 6 полосками, заполненная глиной 8,9 (приблизительно) грамма Профессиональные покерные фишки.
Доступные цвета: желтый, синий, золотой, черный, зеленый, розовый
Индивидуальные фишки для покера Cardrim
Фишка Cardrim, заполненные глиной профессиональные фишки для покера весом 8,9 (приблизительно) грамм.
Доступные цвета: синий, зеленый, красный, черный, белый, золотой
ИНФОРМАЦИЯ О ЦЕНАХ И ЗАКАЗЕ
Информация о ценах и заказе
- Минимальный заказ: 300 чипов
- Стоимость установки 45 долл. США (г) за изображение, повторный заказ установки 24 долл. США (г)
- Подтверждение по электронной почте 9 бесплатно0014
- Упаковка: 100 упаковок в белой коробке, доступны футляры для чипов, запросите цену.
- Lead-time: normally 7 working days after approval
Custom Inlay Chips | 100 | 300 | 500 | 1000 | 5000 | |
---|---|---|---|---|---|---|
Price Per Chip SKU: 4C12S |
Информация о ценах и заказе
- Минимальный заказ: 300 чипов
- Стоимость установки 45 долл.
США (г) за изображение, повторный заказ установки 24 долл. США (г) Упаковка: 100 упаковок в белой коробке, доступны футляры для чипсов, запросите предложение.
- Время выполнения: обычно 7 рабочих дней после утверждения
Custom Inlay Chips | 100 | 300 | 500 | 1000 | 5000 | |
---|---|---|---|---|---|---|
Price Per Chip SKU: 4CGL |
Информация о ценах и заказе
- Минимальный заказ: 100 чипов
- Стоимость установки 48 долларов США за изображение
- Доказательство: подтверждение по электронной почте бесплатно
- Упаковка: 100 упаковок в белой коробке, есть футляры для чипов, запросите цену.
- Lead-time: normally 14 working days after approval
Custom Hot Stamp Chips | 100 | 300 | 500 | 1000 | 5000 | |
---|---|---|---|---|---|---|
Price Per Chip SKU: FS3S |
Die Charges
Die Charge is per image
Setup is per die
Нет дополнительной платы за деноминации на складе
Количество | 1 | 2 | 3 | 4 | 5 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
.0183 | ![]() Информация о ценах и заказа
Стоимость Die Заряд вымирания — это изображение
Информация о ценах и заказа
| |||||||||||||||||||||||||
Price Per Chip SKU: FSCR |
Стоимость штампа
Стоимость штампа указана за изображение
Установка указана за штамп
Без дополнительной оплаты за стандартные номиналы
Количество | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
List Price | ![]() |