python——图像处理第一节

第一节

1.环境搭建:python3.6+PyCharm+Opencv3.3
pycharm里自带了很方便的安装第三方库的方法,不需要自己去下载opencv包再pip install,在seetings中安装OpenCV
2.快捷键的使用
ctrl+/ 注释
“”“” 整段注释
Tab 整段缩进
Shift+Tab 整段取消缩进
3.OpenCV的各个模块
在这里插入图片描述

第二节图片加载和保存

import cv2 as cv
import numpy as np
def get_image_info(img):
    print(img.size)
    print(img.shape)
    print(img.dtype)
    print(type(img))
    pixel_data = np.array(img)
    print(pixel_data)

src = cv.imread("C:/Users/Administrator/Pictures/tt.png")
get_image_info(src)
cv.imshow("inputWindows",src)
cv.waitKey(0)
cv.destroyWindow("inputWindows")

第三节 颜色空间转换

1.什么是色彩空间?常见色彩空间?相互转换?
“色彩空间”一词源于西方的“Color Space”,又称作“色域”,色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间。
2.常见色彩空间:RGB HSV HIS YCrCb YCrCb

import cv2 as cv
import numpy as np
def cross_pixels(image):
    print(image.shape)
    height = image.shape[0]
    width = image.shape[1]
    channel = image.shape[2]
    print("height:%s,width:%s,channel:%s"%(height,width,channel))

def color_space_demo(image):
    gray = cv.cvtColor(image,cv.COLOR_RGB2GRAY)
    cv.imshow("gray",gray)
    hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV)
    cv.imshow("hsv",hsv)
    yuv = cv.cvtColor(image,cv.COLOR_RGB2YUV)
    cv.imshow("yuv",yuv)


def extract_demo():
    capture = cv.VideoCapture("C:/Users/Administrator/Pictures/1.mp4")
    while(True):
        ret,frame = capture.read()
        if(ret == False):
            break;
        hsv = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
        lowerb = np.array([11,42,46])
        upperb = np.array([25, 255, 255])
        src = cv.inRange(hsv,lowerb,upperb)
        cv.imshow("src",src)
        c = cv.waitKey(40)
        if(c==27):
            break;
def split_merge_demo(image):
    b,g,r = cv.split(image)
    cv.imshow("b",b)
    cv.imshow("g",g)
    cv.imshow("r",r)
    image[:,:,2]=0
    cv.imshow("changeImage",image)
    src1 = cv.merge([r,g,b])
    cv.imshow("src1",src1)

src = cv.imread("C:/Users/Administrator/Pictures/tt.png")
cv.imshow("inputWindows", src)
# extract_demo()
# cross_pixels(src)
# color_space_demo(src)
split_merge_demo(src)
cv.waitKey(0)
cv.destroyAllWindows();

用于提取颜色的图片
在这里插入图片描述

第四节 像素运算

任务:加减乘除、对比度、亮度、逻辑运算:与或非

#!/usr/bin/env python

# encoding: utf-8

# @Time    : 2020/8/7 16:23
# @Author  : yq
# @Site    : 
# @File    : tutorial_3.py.py
# @Software: PyCharm

import cv2 as cv
import numpy as np

def add_demo(m1,m2):
    image = cv.add(m1,m2)
    cv.imshow(image)


def sub_demo(m1,m2):
    image = cv.subtract(m1,m2)
    cv.imshow(image)


def mul_demo(m1,m2):
    image = cv.multiply(m1,m2)
    cv.imshow(image)


def divide_demo(m1,m2):
    image = cv.divide(m1,m2)
    cv.imshow(image)

def logic_and(m1,m2):
    image = cv.bitwise_and(m1,m2)
    cv.imshow(image)


def logic_or(m1,m2):
    image = cv.bitwise_or(m1,m2)
    cv.imshow(image)


def logic_not(m1):
    image = cv.bitwise_not(m1)
    cv.imshow(image)

def contrast_bright_demo(m1,c,b):
    h,w,ch = m1.shape
    blank = np.zeros([h,w,ch],m1.dtype)
    dst = cv.addWeighted(m1,c,blank,1-c,b)
    cv.imshow("contrast_bright_demo",dst)


src = cv.imread("C:/Users/Administrator/Pictures/tt.png")
cv.imshow("inputWindows", src)
contrast_bright_demo(src,0.5,100)
cv.waitKey(0)
cv.destroyAllWindows();

第五节 模糊操作

任务:均值,中值,预定义
应用场合:

#!/usr/bin/env python

# encoding: utf-8

# @Time    : 2020/8/7 18:02
# @Author  : yq
# @Site    : 
# @File    : tutorial_4.py.py
# @Software: PyCharm

import cv2 as cv
import numpy as np


def blur_demo(image):
    dst=cv.blur(image,(15,15))
    cv.imshow("blur_demo:",dst)


def mean_demo(image):
    dst = cv.mean(image,(5,5))
    cv.imshow("mean_demo:", dst)

def medianBlur_demo(image):
    dst = cv.medianBlur(image, 5)
    cv.imshow("medianBlur_demo:", dst)

def customBlur_demo(image):
    # kernel = np.array((1,1,1),(1,1,1),(1,1,1),np.float32)/9
    kernel = np.ones([5,5],np.float32)/25
    dst = cv.filter2D(image,-1,kernel)
    cv.imshow("customBlur_demo",dst)

src = cv.imread("C:/Users/Administrator/Pictures/tt.png")
cv.imshow("inputWindows", src)
customBlur_demo(src)
# medianBlur_demo(src)
# mean_demo(src)
# blur_demo(src)
cv.waitKey(0)
cv.destroyAllWindows();

第六节 高斯滤波

任务:添加高斯噪声 、高斯滤波、计算时间

#!/usr/bin/env python

# encoding: utf-8

# @Time    : 2020/8/7 20:58
# @Author  : yq
# @Site    : 
# @File    : tutorial_5.py.py
# @Software: PyCharm

import cv2 as cv
import numpy as np

def clamp(dvp):
    if(dvp>255):
        return 255
    elif(dvp<0):
        return 0
    else:
        return dvp
#添加高斯噪音
def gaussian_demo(image):
    h,w,ch=image.shape
    for row in range(h):
        for col in range(w):
            s=np.random.normal((0,20,3))
            b = image[row , col ,0]
            g = image[row , col ,1]
            r = image[row , col ,2]
            image[row, col, 0] = clamp(b + s[0])
            image[row, col, 1] = clamp(g + s[1])
            image[row, col, 2] = clamp(r + s[2])
    cv.imshow("gaussian_demo",image)
    cv.GaussianBlur(image,(0,0),15)
    cv.imshow("GaussianBlur", image)


src = cv.imread("C:/Users/Administrator/Pictures/tt.png")
cv.imshow("inputWindows", src)
t1 = cv.getTickCount()
gaussian_demo(src)
t2 = cv.getTickCount()
time = (t2-t1)/(cv.getTickFrequency())
print("time:%s"%(time))
cv.waitKey(0)
cv.destroyAllWindows();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值