#找到三角形的形心,然后画出一个小圆。
import cv2
img = cv2.imread('sanjiao',0)
ret,thresh = cv2.threshold(img,127,255,0)
binary,contours,hierarchy = cv2.findContours(thresh, 1, 2)
cnt = contours[0]
M = cv2.moments(cnt)
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])
print(cx)
print(cy)
cv2.circle(img,(cx,cy), 10, (0,0,255), -1)
cv2.imshow("img", img)
cv2.waitKey(0)
==============================
#找到三角形的最小外接圆,画出最小外接圆
import cv2
img = cv2.imread('sanjiao',0)
print(img.shape)
ret,thresh = cv2.threshold(img,127,255,0)
binary,contours,hierarchy = cv2.findContours(thresh, 1, 2)
cnt = contours[0]
(x,y),radius = cv2.minEnclosingCircle(cnt)
center = (int(x),int(y))
radius = int(radius)
print(x)
print(y)
cv2.circle(img,center,radius,(0,255,0),2)
cv2.circle(cnt,(int(x),int(y)), 10, (0,0,255), -1)
cv2.imshow("img", img)
cv2.waitKey(0)
===================================
import cv2 as cv
n = input("Please input c or o:")
cap = cv.VideoCapture(0) # 用VideoCapture()创建一个对象,其参数是摄像机的编号或者是一个视频的文件名
fourcc = cv.VideoWriter_fourcc(*'XVID') # 指定视频视频编解码器格式
out = cv.VideoWriter('wangzili.avi', fourcc, 20.0,
(640, 480)) # 用VideoWriter创建一个对象,其参数有:输出视频的格式、编码格式、帧数(图片数/s,帧数少,视频不流畅,反之流畅,一般在25帧左右)、画面的大小
open = cv.VideoCapture('kongfan.mp4')
if n == 'c':
while (True):
ret, frame = cap.read() # 返回一个布尔值和一个图像矩阵
gray = cv.cvtColor(frame, 0)
flip = cv.flip(gray, 1) # 一个标志,指定如何翻转数组; 0表示绕x轴翻转,正值(例如1)表示绕y轴翻转。负值(例如,-1)表示在两个轴周围翻转
out.write(frame)
cv.imshow("frame", flip)
k = cv.waitKey(1)
if k == ord('q'):
break
elif n == 'o':
while (open.isOpened()):
ret, frame = open.read()
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
cv.imshow("Playing Video", frame)
if cv.waitKey(25) == ord("q"):
break
else:
print("Please input right order")
# 完成后,要释放摄像机(或文件)
cap.release()
open.release()
cv.destroyAllWindows()
===================================
#播放视频文件
import numpy as np
import cv2
cap = cv2.VideoCapture('dianying.avi')
while(1):
ret, frame = cap.read()
cv2.imshow('video',frame)
cv2.waitKey(50)
cv2.waitKey(0)
==================
#爬取一张图片
import requests
response = requests.get('http://cipp.ustb.edu.cn/attachment/0/20190117/9FAFFB4D43BD4878ACD04AE83773A9C5_20190117%E7%99%BB%E5%BD%95%E4%B8%BB%E9%A1%B5%E5%AE%A3%E4%BC%A0.jpg')
content = response.content
with open('1.jpg', 'wb') as f:
f.write(content)
f.close()
=========================
#卷积
# import matplotlib.pyplot as plt
# import pylab
# import cv2
# import numpy as np
#
# img = plt.imread("bear") #在这里读取图片
#
# plt.imshow(img) #显示读取的图片
# pylab.show()
#
# fil = np.array([[ -1,-1,-1], #这个是设置的滤波,也就是卷积核
# [ -1, 9,-1],
# [ -1,-1,-1]])
#
# res = cv2.filter2D(img,-1,fil) #使用opencv的卷积函数
#
# plt.imshow(res) #显示卷积后的图片
# plt.imsave("res.jpg",res)
# pylab.show()
==============================
#寻找颜色空间,白色
import cv2 as cv
import numpy as np
cap = cv.VideoCapture(1)
while(1):
# Take each frame
_, frame = cap.read()
# Convert BGR to HSV
hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
# define range of color in HSV
lower_blue = np.array([0,0,120])
upper_blue = np.array([180,30,255])
# Threshold the HSV image to get only blue colors
mask = cv.inRange(hsv, lower_blue, upper_blue)
# Bitwise-AND mask and original image
res = cv.bitwise_and(frame,frame, mask= mask)
cv.imshow('frame',frame)
cv.imshow('mask',mask)
cv.imshow('res',res)
k = cv.waitKey(5) & 0xFF
if k == 27:
break
cv.destroyAllWindows()
========================================