ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

opencv项目实战-1基础知识

2021-09-24 22:31:27  阅读:190  来源: 互联网

标签:实战 src 阈值 img cv2 基础知识 opencv THRESH 图片


python环境:

        版本:3.6.3

        下载连接:https://www.python.org/ftp/python/3.6.3/python-3.6.3-amd64.exe

opencv环境:

        版本:3.4.1.15

        下载链接:https://pypi.tuna.tsinghua.edu.cn/simple/

        opencv_python-3.4.1.15-cp36-cp36m-win_amd64.whl

        opencv_contrib_python-3.4.1.15-cp36-cp36m-win_amd64.whl

1、图片基础操作

1 图片的读取、展示、保存

"""
读取图片
cv2.imread(filename, flags=None)
    filename:图片名
    flags:读取模式
        cv2.IMREAD_COLOR 彩色图片
        cv2.IMREAD_GRAYSCALE 灰色图片
"""
img = cv2.imread('cat.jpg') # 默认为彩色图片

"""
展示图片
cv2.imshow(winname, img)
    winname:展示窗口名
    img:图片
"""
cv2.imshow('cat', img)
cv2.waitKey(0) # 展示图片时间(毫秒),若为0,则无时间限制
cv2.destroyAllWindows()

"""
保存图片
cv2.imwrite(filename, img)
    filename:保存文件名
"""
cv2.imwrite('newcat.jpg', img)

 2 图片的截取、拉伸

# 图片截取
img[0:50, 0:200] # 截取左上角坐标为(0,0),竖直距离50,水平距离200

"""
图片拉伸
resize(src, dsize, dst=None, fx=None, fy=None)
    src:图片
    dsize:图片拉伸后的shape
    fx,fy:若dsize为(0,0),则按照水平拉伸至fx倍,竖直拉伸至fy倍
"""
img = cv2.resize(img, (100, 500))
img = cv2.resize(img, (0, 0), fx= 0.6, fy=0.6)

 3 图片的填充

"""
图片填充
copyMakeBorder(src, top, bottom, left, right, borderType, dst=None, value=None)
    src:图片
    top,bottom,left,right:四个方向延申的长度
    borderType:延申模式
        cv2.BORDER_REPLICATE:复制边缘像素
        cv2.BORDER_REFLECT:反射法 gfedcba|abcdefg|gfedcba
        cv2.BORDER_REFLECT_101:反射法 gfedcb|abcdefg|fedcba
        cv2.BORDER_WRAP:外包装 abcdefg|abcdefg|abcdefg
        cv2.BORDER_CONSTANT:常量法,常数填充 value=常数
"""
img = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_REFLECT_101)

4 图片三色的分离、合并 

# 彩色图片GBR分离与合并
b, g, r = cv2.split(img) # opencv的三色是按照BGR来排列
img = cv2.merge((b,g,r))

5 图片权重合成 

# 两张图片按照像素权重合并
img = cv2.addWeighted(img1, 0.4, img2, 0.6, 0) # img = img1*0.4 + img2*0.6 + 0

6 图片颜色空间转换 

"""
图片颜色空间转换
cvtColor(src, code)
    src:图片
    code:转换成何种格式
        cv2.COLOR_BGR2RGB:将BGR格式转换成RGB格式
        cv2.COLOR_BGR2GRAY:将BGR格式转换成灰度图片
"""
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

7 图片阈值操作

"""
阈值操作
ret, thresh = cv2.threshold(src, thresh, maxval, type)
    ret:阈值(float)
    thresh:输出图片
    
    src:输入图片
    thresh:阈值
    maxval:像素大于阈值(小于阈值)时重新赋予的新值
    type:模式
        cv2.THRESH_BINARY:超过阈值的数,重新赋值maxval,其他的赋值0
        cv2.THRESH_BINARY_INV:cv2.THRESH_BINARY取反
        cv2.THRESH_TOZERO:小于阈值的重新赋0,大于的不动
        cv2.THRESH_TOZERO_INV:cv2.THRESH_TOZERO取反
        cv2.THRESH_TRUNC:大于阈值的重新赋值为阈值
"""
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

 

标签:实战,src,阈值,img,cv2,基础知识,opencv,THRESH,图片
来源: https://blog.csdn.net/LYStudyC/article/details/120463442

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有