Изучение Python OpenCV / Урок #6 – Побитовые операции и маски — Transcript
Full transcript
- 0:00привет в ходе этого урока мы научимся
- 0:01работать с памятование операциями а
- 0:03также изучим работу с масками но перед
- 0:05началом я рекомендую вам сайт пойти
- 0:07против точка ком на этом сайте вы
- 0:09найдете код домашнее задание и много
- 0:11другой полезной информации ссылка на
- 0:13этот урок на сайте будет в описании к
- 0:15этому видео переходите не пожалеете
- 0:17сперва давайте изучим с вами под битовые
- 0:19операции за счет по битовых операций мы
- 0:21можем выполнить объединение нескольких
- 0:23картинок причем когда мы будем
- 0:25объединять мы можем указать каким именно
- 0:27образом мы это будем делать например мы
- 0:30можем объединить картинки с добавлением
- 0:32недостающих частей или же на broads и их
- 0:35урезанием то есть все какие-то не общие
- 0:37черты они будут удалены например из двух
- 0:40картинок или же мы в принципе можем
- 0:42произвести инверсию например у нас есть
- 0:44картинка где она наполовину белым мы
- 0:47производим версии соответственно а
- 0:48колодина которая была белая стала черная
- 0:51а другая половина стала белая то есть
- 0:53вот можно делать например инверсии ну и
- 0:56давайте мы это все лучше изучим с вами
- 0:57не на словах а на практике и в первую
- 1:00очередь я предлагаю создать просто некая
- 1:02наше собственное изображение будет
- 1:04просто черное полотно и давайте мы чтобы
- 1:07его создать подключим здесь библиотеку
- 1:09нам пай я даже не буду добавлять
- 1:10никакого псевдонимом ну и просто
- 1:12создадим некое изображение здесь мы
- 1:15обращаемся к нам по обращаемся к zeroes
- 1:17мы указываем здесь
- 1:18определенный кортеж и количество
- 1:21элементов в этом кортежи это будет по
- 1:23сути размерность самого нашего
- 1:24изображения
- 1:25давайте укажу здесь 350 на 350 думаю нам
- 1:29такого вполне себе хватит и плюс нужно
- 1:31указать еще де type здесь мы укажем you
- 1:33and 8 вот такое вот значение
- 1:35теперь мы давайте создадим с вами круг а
- 1:38также создадим прямоугольник и в
- 1:41дальнейшем мы отобразим эти вещи ну
- 1:43допустим на этом же объекте только мы
- 1:46только мы уже отобразим именно
- 1:48соединение этих вещей и так для начала
- 1:50просто создаем круг я его помещаю как
- 1:52видите на отдельный объект на отдельную
- 1:54переменную и здесь мы просто должны
- 1:56обратиться к библиотеке им дали мы
- 1:58обращаемся к соответствующему методу он
- 2:01называется circle здесь мы давайте с
- 2:03вами сделаем следующее мы обращаемся к
- 2:06и мяч и мы давайте им не просто укажем
- 2:09на какой картинке мы как мы будем все
- 2:11это рисовать а мы skype
- 2:13пируем это изображение и как будто уже
- 2:15на новом изображений мы нарисуем именно
- 2:17наш круг вот такая будет лайк а то есть
- 2:19по факту здесь я указываю что мы берем
- 2:21картинку берем ее по сути размеры бы и
- 2:23берем ее характеристики копируем ее и
- 2:25вот на этой новой скопированные картинки
- 2:27и создадим круг вот такая идет здесь
- 2:29логика далее нам необходимо указать ну
- 2:33как бы
- 2:33центр и центр у меня здесь пускай будет
- 2:36как 125 на 125 ну предположим пуская
- 2:39где-нибудь вот здесь будет находиться
- 2:40также радиус нужно указать пускаю на
- 2:43данный момент будет как 50 ну и
- 2:45дополнительно нужно еще указать цвет
- 2:47здесь конечно же тоже можно создать
- 2:49кортеж и указать как бы три цвета но мы
- 2:52давайте просто укажем здесь значение 255
- 2:55это означает то что мое изображение мой
- 2:57круг он будет состоять лишь из одного
- 3:00цвета и соответственно поскольку это
- 3:02один слой один цвет потом идет диапазон
- 3:04от 0 до 255 и 255 это полностью белый
- 3:09цвет а этом этом и здесь и указываем
- 3:10также мы можем указать
- 3:12просто обмотку можем указать как единица
- 3:15можем обратиться к силе 2
- 3:18и здесь мы можем указать field то что мы
- 3:20с вами уже указывали дата чтобы оно все
- 3:22было заполненная или более сокращенная
- 3:24форма это просто прописать -1 по факту
- 3:26таким образом мы тоже говорим о том что
- 3:28мы все это закрашиваем вы какой-либо
- 3:30определенный цвет ну в нашем случае в
- 3:32белый цвет дополнительном и давайте еще
- 3:35здесь создадим некий квадрат и
- 3:37соответственно мы его делаем а по
- 3:40предыдущему принципу единственное
- 3:42обращаемся к
- 3:43англ уже методу здесь я точно та же
- 3:45самая хочу сделать то все не хочу просто
- 3:47на каком-то изображение это все рисовать
- 3:48я хочу как бы создать копию изображения
- 3:50и уже на копии нарисовать нужный
- 3:53квадратик ну и тут не давайте укажем
- 3:55что-то в духе допустим 20 начиная с
- 3:58точки 2525
- 4:00и вплоть до точек ну предположим давайте
- 4:04250 и тут 350 мы будем рисовать вот этот
- 4:07вот квадрат дополнительно здесь мы
- 4:09должны указать с вами определенный цвет
- 4:11давайте я так же самое здесь укажу 255 и
- 4:14возможно мы укажем еще обводку она тоже
- 4:18у нас здесь будет как -1 до был просто
- 4:19полностью закрасили весь этот квадратик
- 4:22ну и последнее что остается сделать это
- 4:24просто протестировать что же у нас
- 4:25получилось давайте мне
- 4:27а им шоу еще раз вызовем эту функцию
- 4:28здесь будет написано про изолт и здесь
- 4:32мы поначалу давайте выведем круг просто
- 4:34посмотрим что у нас получилось вот у нас
- 4:36кружок есть все абсолютно верно
- 4:38обработать и также возможно давайте мы
- 4:40еще попробуем сквер вывести то бишь нас
- 4:43наш квадрат это же он здесь как виде
- 4:45абсолютно корректно обработался я бы
- 4:47наверное только один момент изменил
- 4:49давайте мы укажем что он наш круг его
- 4:52как бы центр он будет находиться в
- 4:55нулевых координатах зачем мне такое
- 4:58нужно дело в том что ну дело в том что
- 5:00если просто расположу его в начальных
- 5:02координатах то потом мы легко с вами
- 5:04сможем замечать вот эти вот различные
- 5:06объединения изображений так дальше
- 5:08потому что если круг находится просто от
- 5:10квадратом какие-либо объединение прочие
- 5:12вещи мы особо не заметим поэтому круг в
- 5:15моем случае он на данный момент вот так
- 5:16вот выглядит возможно увеличу его просто
- 5:18радиус до 80 ну а так-то оставлю вот его
- 5:22без изменений теперь мы давайте с вами
- 5:24научимся выполнять именно по битовые
- 5:26операции это операции по объединению
- 5:28изображений и по указанию каким способом
- 5:32мы их будем объединять и так для начала
- 5:34мы давайте с вами наверное в ту же самую
- 5:37нашу переменную m&g все это будем
- 5:39запихивать и мы здесь давайте сделаем
- 5:41следующее мы обращаемся к нашей
- 5:43библиотеке и обращаемся к и таком такому
- 5:46между который будет называться в первую
- 5:49очередь как бедварс and чуть позже
- 5:51изучим и другие методы давайте
- 5:52изначально бедварс and изучим что он
- 5:55делать он принимает 2 параметра это два
- 5:58наших изображениям и давайте передадим
- 5:59сюда круг а также передадим сюда квадрат
- 6:03и далее я хочу просто вывести
- 6:05получившееся изображение
- 6:07и что же мы с вами получим смотрите
- 6:09когда мы когда мы используем with white
- 6:11and the данный метод он делать то что он
- 6:14находит лишь одинаковые части для обеих
- 6:17изображений только эти одинаковые части
- 6:19не как раз в на слизь и отображаются
- 6:22напомню что вот здесь мне находился круг
- 6:24здесь меня находился квадрат ну и
- 6:26соответственно были найдены только общие
- 6:28черты и только эти общие черты они были
- 6:30вот здесь выведены получилось такое
- 6:32интересное изображение
- 6:33это если мы говорим относить
- 6:35битва из and если мы будем говорить
- 6:37относительно битвой
- 6:39or давайте мы такое сейчас с вами тоже
- 6:41попробуем запустить то в таком случае мы
- 6:44получаем полное объединение все что нас
- 6:46совпадает или же не совпадает нам в
- 6:48принципе не важно но все объединяется и
- 6:51выводится на экран вот в нашем случае
- 6:53таки произошло это если говорить
- 6:55относительно едва is art также помимо
- 6:57битвой с arm и битвой с н существует еще
- 7:00такой метод который называется x-art
- 7:03давайте мы его сейчас тоже с вами
- 7:05протестируем итак запускаем программу и
- 7:07вот что мы с вами можем заметить у нас
- 7:10произошло объединение двух этих объектов
- 7:13но все что у нас как бы совпадало
- 7:16у этих объектов она не было добавлено к
- 7:18новому изображения то что мы можем
- 7:20заметить видите нас прошлое изображение
- 7:22добавилось ну как в два изображения
- 7:25добавились и все что совпадало но просто
- 7:27чудо было вырезано ну и крайне метод
- 7:30который еще стоит рассмотреть это метод
- 7:32который позволяет нам создать инверсию
- 7:34он называется пе-2 is not опять же
- 7:37давайте мы ставим программу запустим ее
- 7:39повторно в таком случае мы можем с вами
- 7:41заметить вот что у нас кстати в нашем
- 7:45примере это не сильно хорошо сработало
- 7:47мы давайте лучше сюда передадим не два
- 7:49объекта до всего лишь один объект на
- 7:51допустим circle
- 7:52едва диета да еще раз запущу это так вот
- 7:54при использовании этого метода мы
- 7:56получаем с вами инверсию раньше у нас
- 7:59вот здесь был круг и он конечно же был
- 8:01белым но теперь круг как будто был
- 8:03вырезан
- 8:04а вся а все остальное но стала именно
- 8:06белым если мы сюда передадим например с
- 8:09вами квадрат то получим точно то же
- 8:11самое только уже с другим немного
- 8:13объектом возведи квадрат он как будто
- 8:15отсюда вырезано все остальное но уже
- 8:17является белым подобные по битовые
- 8:19операции они часто используются в связке
- 8:22с масками за счет масок мы можем просто
- 8:25выбрать определенную часть из
- 8:27изображения ну или из видео поскольку
- 8:29видео это тоже набор
- 8:31изображение так вот давайте мы сейчас
- 8:32такое с вами как раз попробуем сделать
- 8:34для начала я здесь просто создам еще
- 8:36некую переменную пускай она будет меня
- 8:38называться как фото и здесь мы просто
- 8:41под грузим некое изображение то есть я
- 8:43обращаюсь к папке и magic и обращаясь
- 8:45там такой фотографии который называется
- 8:47как по пенсии .
- 8:49далее нам необходимо создать пустое
- 8:52полотно и здесь важный момент это пустое
- 8:55полотно оно должно содержать точно те же
- 8:57самые размеры что и наше первоначальное
- 9:00фото
- 9:00иначе вот эти вот все маски они просто
- 9:02не будут работать поэтому чтобы нам
- 9:05создать пустое полотно с нужными
- 9:08размерами мы с вами просто обращаемся к
- 9:11нашему фото обращаемся к его размерам и
- 9:14здесь мы используем срез я возьму только
- 9:16первые два элемента то есть количество
- 9:18слоев меня не интересует поэтому беру
- 9:20просто два первых элемента это ширина и
- 9:22соответственно высота
- 9:24и далее мы особо давайте ничего с вами
- 9:26менять не будем мы просто возьмем
- 9:28например ну допустим тот же самый первый
- 9:31наш метод
- 9:31едва сны здесь я предлагаю сделать
- 9:34следующее нам необходимо выполнить
- 9:36объединение фотографиям причем на данный
- 9:39момент мы будем объединять одно и то же
- 9:41самое фото то есть вот не удивляйтесь
- 9:43что здесь два раза прописал как бы одну
- 9:45и ту же самом перемены
- 9:46дело в том что здесь я просто указываю
- 9:47то что к фотографии мы добавляем ту же
- 9:50самую фотографию есть по факту самого по
- 9:52себе объединение не произойдет но в то
- 9:55же время мысленно добавляем еще и третий
- 9:57параметр он называется mask ну или же
- 9:59другими словами маска и в качестве маски
- 10:02мы можем же сюда передать ну допустим
- 10:04круг или там квадрат или что то в этом
- 10:07духе нам и давайте вот сейчас такое
- 10:09попробуем с вами запустите посмотрим что
- 10:11же у нас получилось смотрите давайте
- 10:13вспомним что круг он мне находился вот
- 10:15где-нибудь вот здесь да и соответственно
- 10:18мы можем заметить что из первоначального
- 10:20изображения все что у нас было выделено
- 10:22все что нас теперь показывается это
- 10:24именно то что находилось в самом круги
- 10:27причем круг был до этого белым ну
- 10:29конечно же он теперь стал прозрачным
- 10:30просто показывается само по себе
- 10:32изображение
- 10:33мы давайте сделаем с вами немного как-то
- 10:35более логично мы давайте этот круг
- 10:37расположим ну предположим давайте
- 10:39200 и 300 вот это вот его будет центр на
- 10:43то есть смещение выксу на 200 по игреку
- 10:45на 300 также увеличим его радиус давайте
- 10:49скажем что он будет например как 120 и
- 10:52еще раз мы это все остановим запустим и
- 10:54вот мы замечаем что видите вот этот
- 10:56кружочек он действительно вырезал
- 10:58определенную часть нашего изображения то
- 11:00есть вот за счет масок мы вы можете
- 11:02вырезать из ваших изображений
- 11:04определенную часть и дальше только с
- 11:06этой частью вы можете работать ну и в
- 11:08точно таком же формате вы можете
- 11:10вырезать не только круг вы можете
- 11:12вырезать и просто квадрат вы можете
- 11:14создать какую-то другую форму и
- 11:16соответственно тоже это все сможете
- 11:17спокойно вырезать ну и например в моем
- 11:19примере мне было бы удобно вырезать
- 11:21просто часть где у нас есть те
- 11:23какие-либо буквы ну допустим и давайте
- 11:27мы даже возможно такое с вами сделаем
- 11:28чтобы мне такое реализовать не просто
- 11:30необходимо квадрат немного уменьшить по
- 11:32размерам возможно давайте я здесь укажу
- 11:35как 150 ну как бы от 25 до 150 и до этот
- 11:40действительно идеально то что не как раз
- 11:42и нужно его для получается из всего
- 11:44моего прошлого изображения вырезал
- 11:45просто номер урока и соответственно
- 11:48дальше с этим кусочком изображение могу
- 11:51уже работать как не только вздумается ну
- 11:53и конечно же обработать вот такой
- 11:54маленький кусочек
- 11:55изображение будет гораздо быстрее нежели
- 11:57обрабатывать все изображения целиком а
- 12:00при этом возможно вы все изображение
- 12:01нужно было вам нужно было только эта
- 12:03информация в общем за счет по битовых
- 12:05операция также масок вы можете просто
- 12:07указываете вы можете обрезать
- 12:09изображение и выделять из него только
- 12:11нужную вам часть что достаточно удобно
- 12:14ну что ж на этом у меня все надеюсь урок
- 12:17вам понравился если так то не забывайте
- 12:19подписываться на канал и вступать в наши
- 12:21соцсети все ссылки на них будут в
- 12:23описании к этому видео у меня ж на этом
- 12:25все до скорых встреч пока
About this transcript
This page contains the full transcript of Изучение Python OpenCV / Урок #6 – Побитовые операции и маски by Гоша Дударь, generated from the public captions YouTube serves with the video. The transcript has 2,114 words across 336 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.