2019研究生数学建模C题--图片像素获取与视频帧处理
圖像像素坐標獲取
import cv2
import numpy as np
img = cv2.imread(‘C:\Users\mimi\Desktop\1.jpg’)
a =[]
b = []
def on_EVENT_LBUTTONDOWN(event, x, y,flags, param):
if event == cv2.EVENT_LBUTTONDOWN:
xy = “%d,%d” % (x, y)
a.append(x)
b.append(y)
cv2.circle(img, (x, y), 1, (255, 0, 0), thickness=-1)
cv2.putText(img, xy, (x, y), cv2.FONT_HERSHEY_PLAIN,
1.0, (0, 0, 0), thickness=1)
cv2.imshow(“image”, img)
cv2.namedWindow(“image”)
cv2.setMouseCallback(“image”, on_EVENT_LBUTTONDOWN)
cv2.imshow(“image”, img)
cv2.waitKey(0)
print(a[0],b[0])
img[b[0]:b[1],a[0]:a[1],:] = 0 #注意是 行,列(y軸的,X軸)
cv2.imshow(“image”, img)
cv2.waitKey(0)
print (a,b)
獲取視頻幀
import cv2
import os
def grabFrame(timeInterval, fileName, videoPath):
讀取視頻
cap = cv2.VideoCapture(videoPath)
print(cap.isOpened())
if(cap.isOpened()):
獲取總幀數
frameCount = cap.get(cv2.CAP_PROP_FRAME_COUNT)
print(“總幀數:%d” % frameCount)
獲取幀率
fps = cap.get(cv2.CAP_PROP_FPS)
print(“幀率:%d” % fps)
os.mkdir(“frame/” + str(fileName))
for i in range(0, int(frameCount)):
設置幀的位置
cap.set(cv2.CAP_PROP_POS_FRAMES,ifpstimeInterval)
isRead 是否讀取成功
isRead, frame = cap.read()
if isRead:
cv2.imwrite(“frame/” + str(fileName) + “/” + str(i) + “.jpg”, frame)
cap.release()
if name == ‘main’:
dir_root = r’video’
files = os.listdir(dir_root)
files.sort()
for path in files:
filepath = os.path.join(dir_root, path)
print(filepath)
grabFrame(1, path, filepath)
print(“done!”)
總結
以上是生活随笔為你收集整理的2019研究生数学建模C题--图片像素获取与视频帧处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用OPCServer通过Modbus协
- 下一篇: 【解决方法】ECall 方法必须打包到系