Как захватить одно изображение с веб-камеры и обработать его в OpenCV?

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

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
1 938
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

import cv2
cap = cv2.VideoCapture(0) # Usually if u have only 1 camera, then it's 0, if u have multiple camera then it's may be 0,1,2 ...
ret, frame = cap.read() # ret is True or False status which shows if you are success reading frame from web cam, frame is an array
# If u want to loop to read continously
ret = True
while ret:
    ret, frame = cap.read()
    if frame is None:
        continue # this will stop the loop if we failed to read frame, because ret will be False

Если это тот ответ, который вы хотели, то его задавали несколько раз. Убедитесь, что вы пытались найти ответ, прежде чем спросить

эх, это просто читать с веб-камеры. Я этого не хотел, я хочу, чтобы моя веб-камера снимала ОДНУ картинку (один кадр) и обрабатывала ее дальше через алгоритмы.

bsikriwal 27.05.2019 13:25

@bsikriwal Вы могли бы просто break после первого цикла?

Mohit Motwani 27.05.2019 13:57

@MohitMotwani, а, я новичок в программировании, не могли бы вы просто сказать мне, как это будет выглядеть? реально пожалуйста :)

bsikriwal 29.05.2019 08:19

@bsikrival Я ответил на твой вопрос. Дайте мне знать, если это работает для вас.

Mohit Motwani 29.05.2019 09:22
Ответ принят как подходящий

Чтобы использовать веб-камеру, вы можете использовать VideoCapture:

import cv2
cap = cv2.VideoCapture(0) # use 0 if you only have front facing camera
ret, frame = cap.read() #read one frame
print(frame.shape)
cap.release() # release the VideoCapture object. 

Вы запускаете веб-камеру, читаете одно изображение и тут же отпускаете его. Кадр — это изображение, и вы можете предварительно обработать его, как хотите. Вы можете просмотреть изображение, используя imshow:

cv2.imshow('image', frame)
if cv2.waitKey(0) & 0xff == ord('q'): # press q to exit
    cv2.destroyAllWindows()
cam = cv2.VideoCapture(0)

image = cam.read()[1]

cv2.imshow("image", image)

cv2.waitKey(0)
cv2.destroyAllWindows()

Добро пожаловать в StackOverflow. Хотя этот код может решить вопрос, включая объяснение того, как и почему это решает проблему, действительно поможет улучшить качество вашего сообщения и, вероятно, приведет к большему количеству голосов. Помните, что вы отвечаете на вопрос для будущих читателей, а не только для того, кто задает сейчас. Пожалуйста, отредактируйте свой ответ, чтобы добавить пояснения и указать, какие ограничения и предположения применяются.

Ruli 01.12.2020 23:52

Другие вопросы по теме