opencv python最近的各种操作代码上传

本文档收集了近期使用OpenCV Python进行图像处理的一些实战代码,包括图像读取、滤波、边缘检测等核心操作,旨在帮助开发者快速理解和应用OpenCV库。
摘要由CSDN通过智能技术生成
#找到三角形的形心,然后画出一个小圆。
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()
========================================

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值