1 | initial version |
WOOOooow I loved scribble puzzle. I soloved your problem and save pics too
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
n_rows = 3
n_images_per_row = 3
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
height, width, ch = frame.shape
roi_height = int(height / n_rows)
roi_width = int(width / n_images_per_row)
images = []
for x in range(0, n_rows):
for y in range(0,n_images_per_row):
tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
images.append(tmp_image)
# Display the resulting sub-frame
for x in range(0, n_rows):
for y in range(0, n_images_per_row):
cv2.imshow(str(1+y+x*n_images_per_row), images[x*n_images_per_row+y])
cv2.moveWindow(str(x * n_images_per_row + y + 1), 100 + (y * roi_width), 50 + (x * roi_height))
for i, face in enumerate(images):
cv2.imwrite("{}.jpg".format(i), face)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.imshow(cap.release())
cv2.destroyAllWindows()
2 | No.2 Revision |
WOOOooow WOOOooow! I loved scribble puzzle. I soloved solved your problem and save pics too
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
n_rows = 3
n_images_per_row = 3
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
height, width, ch = frame.shape
roi_height = int(height / n_rows)
roi_width = int(width / n_images_per_row)
images = []
for x in range(0, n_rows):
for y in range(0,n_images_per_row):
tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
images.append(tmp_image)
# Display the resulting sub-frame
for x in range(0, n_rows):
for y in range(0, n_images_per_row):
cv2.imshow(str(1+y+x*n_images_per_row), images[x*n_images_per_row+y])
cv2.moveWindow(str(x * n_images_per_row + y + 1), 100 + (y * roi_width), 50 + (x * roi_height))
for i, face in enumerate(images):
cv2.imwrite("{}.jpg".format(i), face)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.imshow(cap.release())
cv2.destroyAllWindows()
3 | No.3 Revision |
WOOOooow! I loved scribble puzzle. I solved your problem and save pics tootoo. I added some enumerate to save pic.
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
n_rows = 3
n_images_per_row = 3
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
height, width, ch = frame.shape
roi_height = int(height / n_rows)
roi_width = int(width / n_images_per_row)
images = []
for x in range(0, n_rows):
for y in range(0,n_images_per_row):
tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
images.append(tmp_image)
# Display the resulting sub-frame
for x in range(0, n_rows):
for y in range(0, n_images_per_row):
cv2.imshow(str(1+y+x*n_images_per_row), images[x*n_images_per_row+y])
cv2.moveWindow(str(x * n_images_per_row + y + 1), 100 + (y * roi_width), 50 + (x * roi_height))
for i, face in enumerate(images):
cv2.imwrite("{}.jpg".format(i), face)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.imshow(cap.release())
cv2.destroyAllWindows()
4 | No.4 Revision |
WOOOooow! I loved scribble puzzle. I solved your problem and save pics too. I added some enumerate to save pic.
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
n_rows = 3
n_images_per_row = 3
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
height, width, ch = frame.shape
roi_height = int(height / n_rows)
roi_width = int(width / n_images_per_row)
images = []
for x in range(0, n_rows):
for y in range(0,n_images_per_row):
tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
images.append(tmp_image)
# Display the resulting sub-frame
for x in range(0, n_rows):
for y in range(0, n_images_per_row):
cv2.imshow(str(1+y+x*n_images_per_row), images[x*n_images_per_row+y])
cv2.moveWindow(str(x * n_images_per_row + y + 1), 100 + (y * roi_width), 50 + (x * roi_height))
for i, face in enumerate(images):
cv2.imwrite("{}.jpg".format(i), face)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.imshow(cap.release())
cv2.destroyAllWindows()
Another thing is you don't needed another iterator. You can reduce from 35 to 30 lines.
import cv2
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
n_rows = 3
n_images_per_row = 3
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
height, width, ch = frame.shape
roi_height = int(height / n_rows)
roi_width = int(width / n_images_per_row)
images = []
for x in range(0, n_rows):
for y in range(0,n_images_per_row):
tmp_image=frame[x*roi_height:(x+1)*roi_height, y*roi_width:(y+1)*roi_width]
images.append(tmp_image)
cv2.imshow(str(1+y+x*n_images_per_row), images[x*n_images_per_row+y])
cv2.moveWindow(str(x * n_images_per_row + y + 1), 100 + (y * roi_width), 50 + (x * roi_height))
for i, face in enumerate(images):
cv2.imwrite("{}.jpg".format(i), face)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cv2.imshow(cap.release())
cv2.destroyAllWindows()