opencv-python

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉机器学习软件库,可以运行在LinuxWindowsAndroidMac OS操作系统上。 [1]
 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它具有C ++,PythonJavaMATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

1、要尝试opencv,先要搭建开发环境。这里选用python3.7开发环境。

      下载安装 python-3.7.9-amd64.exe

      下载安装 pycharm-community-2020.3.3.exe

      下载安装 opencv_python-4.4.0-cp37-cp37m-win_amd64.whl  (https://www.lfd.uci.edu/~gohlke/pythonlibs/

                     pip install  D:\Programs\Python\Python37\libs\opencv_python-4.4.0-cp37-cp37m-win_amd64.whl

     pycharm很强大,如图左下角可以直接添加第三方包的。不过opencv_python安装不了,所以只能用手工下载安装包的方式安装。

     

2、读取图片,并显示

import cv2
img = cv2.imread("resource/20190310205715.jpg") #也可以用绝对路径
cv2.imshow("gaofeng",img) #窗口标题为gaofeng
cv2.waitKey(0) #等待键盘输入,否则窗口立即关闭,程序结束。

3、其它图片处理函数 

def img():
    img = cv2.imread("resource/20190310205715.jpg") #也可以用绝对路径
    cv2.imshow("gaofeng", img)  # 窗口标题为gaofeng

    imggray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转化为灰度图像
    cv2.imshow("gray", imggray)

    imgBlur = cv2.GaussianBlur(imggray,(11,11),0)  #高斯滤波(模糊处理)
    cv2.imshow("imgBlur", imgBlur)

    imgCanny = cv2.Canny(img,100,100)
    cv2.imshow("imgCanny",imgCanny)

    kernel = np.ones((5,5),np.uint8)
    imgdilate = cv2.dilate(imgCanny,kernel,iterations=2) #膨胀,把线条变粗
    imgerode = cv2.erode(imgdilate,kernel,iterations=2) #腐蚀,把线条变细

    cv2.imshow("imgdilate", imgdilate)
    cv2.imshow("imgerode", imgerode)
    
    cv2.waitKey(0) #等待键盘输入,否则窗口立即关闭,程序结束。

4、图片缩放和剪切

def resize():
    img = cv2.imread("resource/20190310205715.jpg")
    imgresize = cv2.resize(img,(540,720))#缩放
    imgcut = img[0:200,200:500] #剪切一个区域
    print(img.shape,imgresize)
    cv2.imshow("img", img)
    cv2.imshow("imgresize", imgresize)
    cv2.imshow("imgcut", imgcut)
    cv2.waitKey(0)

5、视频和摄像头

def video():
    cap = cv2.VideoCapture("F:\\草莓红\\06 魔术六:心灵卡片.mp4")
    #cap = cv2.VideoCapture(0) #从笔记本摄像头读取
    cap.set(3,480) #宽
    cap.set(4,320) #高
    cap.set(10,100) #cv2.CAP_PROP_BRIGHTNESS 亮度
    while True:
        success,img = cap.read() #读一张图片
        cv2.imshow("gaofeng", img) #显示一个图片
        if (cv2.waitKey(40) & 0xff) == ord('q'): #40毫秒播放一张图片;按下q则退出
            break

6、画图形

import numpy as np
def shape():
    img = np.zeros((512,512,3),np.uint8)#512*512的图片
    print(img)
    img[:]=0,255,0  #颜色
    # img[128:300] = 255, 0, 0  # 颜色
    img[128:300,20:100] = 255, 0, 0  # 颜色

    cv2.line(img,(0,0),(int(img.shape[1]/2),300),(0,0,255),3)#画一条线
    cv2.rectangle(img,(30,10),(50,50),(0,0,255))
    cv2.circle(img,(70,80),40,(0,0,255),2)
    cv2.putText(img,"gaofeng",(70,80),cv2.FONT_HERSHEY_SCRIPT_COMPLEX,1,(0,0,90))

    cv2.imshow("img", img)
    cv2.waitKey(0)

7、打印图片的每个像素

读取到的图片是  class 'numpy.ndarray'

打印红色通道  print(img[0])  打印结果是第一行的n个点,每个点是 [r g b]

参考

NumPy 算术函数 | 菜鸟教程

 8、图像匹配

【 OpenCV 】MatchTemplate函数参数详解及原理分析_Nick大帅仔 的博客-CSDN博客

all = cv.imread('all.png', cv.IMREAD_COLOR)
key = cv.imread('key.png', cv.IMREAD_COLOR)
h, w = key.shape[:2]

result = cv.matchTemplate(all, key, cv.TM_CCOEFF_NORMED)

min_val, max_val, min_loc, max_loc = cv.minMaxLoc(result)    #对比结果最大值最小值以及位置

br = (max_loc[0] + w, max_loc[1] + h)
cv.rectangle(all, max_loc, br, [0, 255, 0], 2)
cv.imshow("pipei", all)
cv.waitKey(0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV-PythonOpenCVPython绑定库,它提供了丰富的计算机视觉功能和图像处理算法。它可以用于图像处理、对象检测、特征提取和跟踪、图像分割等任务。为了安装OpenCV-Python,您可以使用pip命令。如果只需要主要模块,可以运行"pip install opencv-python",如果还需要额外的贡献模块,可以运行"pip install opencv-contrib-python"。根据不同的需求,您可以选择安装不同的版本。目前有OpenCV2和OpenCV3两个大版本,OpenCV3提供了更多功能和方便的特性,但是考虑到与深度学习框架的兼容性和安装的难度,我们推荐先使用OpenCV2进行学习和应用。为了更方便地安装OpenCV-Python,您可以使用以下命令:"pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple"。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [OpenCV-python安装教程](https://blog.csdn.net/qq_41627235/article/details/87692748)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【基础知识】4、python-opencv 超详细介绍](https://blog.csdn.net/jiaoyangwm/article/details/79961778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值