opencv在python上的使用

一、配置环境

1、安装anaconda,本人安装的是Anaconda3-4.2.0;下载链接:https://www.anaconda.com/download/
2、安装numpy,进入安装目录的Lib\site-packages子目录,在cmd中输入命令pip install numpy
3、安装opencv,本人安装的是opencv3.3.0;先把opencv_python-3.3.0-cp35-cp35m-win_amd64.whl下载,放在在Lib\site-packages目录,下载链接http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv;cmd中输入命令pip install opencv_python-3.3.0-cp35-cp35m-win_amd64.whl
4、在cmd输入python,进入python环境,输入import cv2,没有报错则表示安装成功。

二、opencv在python中的API使用

 
import cv2
import numpy as np

if __name__ == "__main__":
    #从根目录读取图像
    src = cv2.imread("1.jpg")
    #灰度化
    gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
    #二值化
    ret,thresh = cv2.threshold(gray, 128, 255, cv2.THRESH_BINARY)
    #canny边缘检测
    canny = cv2.Canny(src, 50, 150, (3,3))
    #sobel边缘检测
    x = cv2.Sobel(gray, cv2.CV_16S, 1, 0)
    y = cv2.Sobel(gray, cv2.CV_16S, 0, 1)
    absX = cv2.convertScaleAbs(x)
    absY = cv2.convertScaleAbs(y)
    sobel = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
    #gaussian滤波
    gaussian = cv2.GaussianBlur(gray, (3,3), 0)
    #box filter方框滤波
    boxfilter = cv2.boxFilter(gray, -1, (5,5))
    #均值滤波
    blur = cv2.blur(gray, (5,5))
    #中值滤波
    median = cv2.medianBlur(gray, 5)
    #双边滤波
    bilateral = cv2.bilateralFilter(gray, 3, 140, 140)
    #获取ROI区域
    ROI_img = src[0:(0 + 30), 0:(0 + 100)]
    src[0:(0 + 30), 0:(0 + 100)] = ROI_img
    #分离颜色通道&多通道图像融合
    blue, green, red = cv2.split(src)
    merged_img = cv2.merge([blue, green, red])
    #形态学运算
        #定义kernel方法一
    kernel = np.uint8(np.zeros((5,5)))
    for i in range(5):
        kernel[i, 2] = 1
        kernel[2, i] = 1
       #定义kernel方法二
    element = cv2.getStructuringElement(cv2.MORPH_CROSS, (5,5))
    eroded_img = cv2.erode(src, element)
    dilated_img = cv2.dilate(src, element)
    opening_img = cv2.morphologyEx(src, cv2.MORPH_OPEN, element)
    closing_img = cv2.morphologyEx(src, cv2.MORPH_CLOSE, element)
    #高斯金字塔&拉普拉斯金字塔
    src1 = cv2.pyrDown(src) #gaussian金字塔
    temp_src1 = cv2.pyrDown(src1)
    temp = cv2.pyrUp(temp_src1)
    src2 = src1 - temp #laplace金字塔
    #resize()函数
    rows, cols, channels = src.shape
    resize_img = cv2.resize(src, (cols/2, rows/2), interpolation = cv2.INTER_LINEAR)
    #显示图像
    cv2.imshow("1", resize_img)
    #延时
    cv2.waitKey(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值