Огромное спасибо за уроки, очень доходчиво и понятно. В примере все начинает корректно работать если поменять местами x и y в координатах квадрата - (y1, x1), (y2, x2), а в putText (y1, x2+60).
@sergeigamich2 жыл бұрын
Спасибо!
@АннаДобрыдина-ш6л2 жыл бұрын
# сбой произошел еще выше, а именно y,x=np.where(imgMask==255) x1,y1=np.min(x),np.min(y) x2,y2=np.max(x),np.max(y) crop=imgGrey[y1:y2,x1:x2] .... imgFinal=cv2.rectangle(img,(x1,y1),(x2,y2), (0,255,0),4) # если писать на фоне, будет симпатичнее imgFinal=cv2.putText(img,res,(x2+10,y1-10),cv2.FONT_HERSHEY_PLAIN,3,(0,0,0),20) imgFinal=cv2.putText(img,res,(x2+10,y1-10),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),4)
@fewds35093 жыл бұрын
Как всегда очень познавательно.
@iMarkusUS Жыл бұрын
давайте вот под эту картинку напишем программу , а под другую картинку напишем другую программу ))) П-программирование универсальное
@mistressbowie28203 жыл бұрын
Подгонять картинку под код это ни чему не учит.
@Euler-sy2ld6 ай бұрын
ничему слитно
@rumvitrumvit80552 жыл бұрын
А кто подскажет как избавиться от черты между номером и регионом? Иногда эта черта сильно мешает.
@daniil1001_ Жыл бұрын
на винде не работает easyocr, а про винду вообще ничего не сказал где искать установщик сертификатов(30:08)
@АннаДобрыдина-ш6л2 жыл бұрын
# сбой произошел еще выше, а именно y,x=np.where(imgMask==255) x1,y1=np.min(x),np.min(y) x2,y2=np.max(x),np.max(y) crop=imgGrey[y1:y2,x1:x2] .... imgFinal=cv2.rectangle(img,(x1,y1),(x2,y2), (0,255,0),4) # если писать на фоне, будет симпатичнее imgFinal=cv2.putText(img,res,(x2+10,y1-10),cv2.FONT_HERSHEY_PLAIN,3,(0,0,0),20) imgFinal=cv2.putText(img,res,(x2+10,y1-10),cv2.FONT_HERSHEY_PLAIN,3,(0,0,255),4)
@max-v7e2 жыл бұрын
самый большой косяк когда идет поиск закрытого контура номера, это то, что у номера 2 закрытых контура: сам номер и регион. и некорректно работает или регион оставляет или сам номер
@bot-x4u2 жыл бұрын
у меня одного ошибка при импортировании opencv? AttributeError: partially initialized module 'cv2' has no attribute 'gapi_wip_gst_GStreamerPipeline' (most likely due to a circular import)
@WitcherCoin2 жыл бұрын
У меня не находит номер на картинке, менял всякие картинки, но безрезультатно
@НиколайКозак-й7д Жыл бұрын
Не получается установить easyocr, требуется какой-то torch. torch тоже установить не получается, ошибку выдаёт.
@roboger6590 Жыл бұрын
поменяй версию пайтон на 3.8 или ниже
@artemlunin Жыл бұрын
Меня в ступор вогнал финальный кусок с распознаванием текста, в общем-то вручную взяли значение номера из большого массива. С таким же успехом можно было просто "глазами" распознать текст без библиотек и вывести это значение на картинке
@lol-et1fz Жыл бұрын
XDXD ))
@lol-et1fz Жыл бұрын
Бывает )
@ilyin_sergey7 ай бұрын
Букву о и ноль ему можно простить. Ну охуенно, че
@PrimerSna2 күн бұрын
@@ilyin_sergey Учитывая то, что можно было просто прописать такую темку, что должно быть определенное число цифр, следовательно, в начале 0 не может быть и это о Тем более, что это нужно сделать с 1 буквой
@exwwbuz60303 жыл бұрын
Cделай курс видео по Котлин для андроид
@NexarionGorbah10 ай бұрын
а как тренировать модель?
@mickeymouse24149 ай бұрын
Нашел ответ?
@Андрей-й1ы1б Жыл бұрын
а как делать тоде самое толтко с камерой в реальном времяни ? Будет видос когда то?)
@DNA_original9 ай бұрын
Обрабатывать так каждый кадр видео
@freshtwist47226 ай бұрын
Создаёшь цикл cap = cv2.VideoCapture(Путь к файлу или айди камеры) while True: suc, img = cap.read() потом уже идёт остальной код, представленный в видео
@АннаЖуйкова-э7е Жыл бұрын
Можете, кто нибудь скинуть данную программу? Пж
@ВежливыйЮрий Жыл бұрын
у меня возникают проблемы после установки библиотеки easyocr просто после каждой каманды imshow вылазиет ошибка! у кого есть такая проблема?
@miner_games20084 ай бұрын
у меня тоже. не знаю как починить. если нашли решение, подскажите пожалуйста
@TheGamerslog882 жыл бұрын
почему то после того , как обрезали изображение. Не хочет выводится crop. Ошибка error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'. Может кто знает , в чём проблема?
@mineralski Жыл бұрын
Смог пофиксить?
@РоманЧивкунов3 жыл бұрын
12 лайк за мной
@_black_stack_99142 жыл бұрын
А КАК РАБОТАТЬ С ВИДЕО?!
@ruden66232 жыл бұрын
Разбивать видео на отдельные кадры(изображения) и работать к каждым кадром по отдельности
@nurkenabdurakhmanov779 Жыл бұрын
19:24 у меня нашлось в этот момент
@ВераЛари Жыл бұрын
Прямоугольник не надо называть квадратом.
@LOGOSTT2 жыл бұрын
4:35 это называется не "серый формат изображения", а "(256) оттенков серого"
@iMarkusUS Жыл бұрын
Пиждец , когда есть уже готовые нейронеи мы будем ковырять эту шнягу и толку не добьёмся .. как насчёт просто адаптировать готовую нейронную сеть по распознаванию номеров и постараться ее оптимизировать
@polladerr Жыл бұрын
CUDA not available - defaulting to CPU. Note: This module is much faster with a GPU. до сих пор такая штука я на винде того файла у меня нет
@nurkenabdurakhmanov779 Жыл бұрын
тоже самое
@bloodroot9245 Жыл бұрын
Не разобрался случайно?
@dsdf15 Жыл бұрын
@@bloodroot9245 Там говорится что CUDA ядра не доступны на процессоре(CPU). При использовании Графического процессора(GPU) этот модуль будет работать быстрее. Необходимы доп. установки для переключения на использование GPU вместо CPU.
@mardershadow39653 жыл бұрын
а как ти коментируеш сразу несколько строк ?
@vadimlerner71673 жыл бұрын
cntr /
@java_v83 жыл бұрын
Первый лайк моооой!
@anolegych3 жыл бұрын
Вооот, воооот! То, что нужно! Хочу написать для работы в больнице программку для распознания заводских номеров оборудования, с юи в ткинтер. Подскажите ребят, каким образом можно совместить в одной проге эти библиотеки? Я просто еще совсем зеленый. Что почитать/посмотреть?
@Crocohufu3 жыл бұрын
Разберись сперва с этим примером, чтобы он мог больше одного номера распознать.
@anolegych3 жыл бұрын
@@Crocohufu подразумевается, что из папки будет загружаться по 1 фотке, сразу распознаваться, возможно, и скорее всего, с выделением нужного места вручную, чтобы лишнее не считалось с шильдика. Ну и в таблицу заноситься. А вот как допустим заставить ткинтер отображать то, что прочитал cv2 и simpleocr, привязать к кнопкам их функции пока что для меня тайна покрытая мраком. Я понимаю, что нужно долго копать эти вещи, но пока не понимаю в какую сторону лопатой ткнуть, и той ли стороной лопаты я копаю вообще)
@Rejgan3183 жыл бұрын
@@anolegych Копай в сторону PySimpleGUI
@kitoboynaya2 жыл бұрын
Бесплатно обучаю алгоритмической торговле! :)
@blackRUS20102 жыл бұрын
Гоша, может все-таки прямоугольник, а не квадрат? Садись, два, давай дневник, родителей в школу!
@ruden66232 жыл бұрын
Квадрат тоже прямоугольник, но не каждый прямоугольник квадрат
@blackRUS20102 жыл бұрын
@@ruden6623 кто же с этим спорит? только вот автор использует "квадрат" применительно к автомобильному номеру, который квадратом не является ) вот если бы наборот, номер был бы квадратный, то подходили бы оба варианта
@kitoboynaya2 жыл бұрын
Бесплатно обучаю алгоритмической торговле! :)
@blackRUS20102 жыл бұрын
@@kitoboynaya зачем вы это делаете?))
@irina5358 Жыл бұрын
Не работает код в 2023
@Harvey_Spectr Жыл бұрын
import cv2 import numpy as np import imutils import easyocr from matplotlib import pyplot as pl img = cv2.imread('images/AVto 2jpg.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_filter = cv2.bilateralFilter(gray, 11, 15, 15) edges = cv2.Canny(img_filter, 30, 200) cont = cv2.findContours(edges.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) cont = imutils.grab_contours(cont) cont = sorted(cont, key=cv2.contourArea, reverse=True) pos = None for c in cont: approx = cv2.approxPolyDP(c, 10, True) if len(approx) == 4: pos = approx break mask = np.zeros(gray.shape, np.uint8) new_img = cv2.drawContours(mask,[pos], 0, 255, -1) bitwise_img = cv2.bitwise_and(img, img, mask=mask) (x, y) = np.where(mask == 255) (x1, y1) = (np.min(x), np.min(y)) (x2, y2) = (np.max(x), np.max(y)) crop = gray[x1:x2, y1:y2] text = easyocr.Reader(['en']) text = text.readtext(crop) pl.imshow(cv2.cvtColor(crop, cv2.COLOR_BGR2RGB)) pl.show() Если не работает то попробуй заменить 574 img = cv2.resize(img,(model_height,int(model_height*ratio)), interpolation=Image.Resampling.LANCZOS) 576 img = cv2.resize(img,(model_height,int(model_height*ratio)), interpolation=Image.Resampling.LANCZOS)
@roboger6590 Жыл бұрын
Ставте python 3.8 и будет счастье
@viktornekrasov50243 жыл бұрын
Bla bla bla. Bla bla bla. Вода вода вода инфа. Вода вода вода инфа.
@elezthemdev Жыл бұрын
Говорит какой-то ноунейм, или интернетный троль 😂
@MickelBack8883 жыл бұрын
Мда, чел уже много лет свои "уроки" выкладывает, а так и не научился программировать
@johnkh6782 жыл бұрын
А это по твоему стихи пушкина?Или ты хотел увидеть как он напишет приложение на милион доларов за 8 уроков.
@aveomathman55322 жыл бұрын
@@johnkh678 как минимум нормально код писать и не вводить в заблуждение новичков своими "уроками"
@Name-ko3qb2 жыл бұрын
@@aveomathman5532 Это ознакомительные видео для полноты картины, очень полезно
@aveomathman55322 жыл бұрын
@@Name-ko3qb могу сказать так, что в ютубе есть авторы, которые затрагивают openCV и контент у них получается в разы качественнее. Рекомендую поискать opencv tutorial и тебе попадется много ознакомительных видео для полноты картины, ну или можно чекнуть документацию. Чем раньше начнешь использовать документацию, тем быстрее ты начнешь писать хороший код!