zoukankan      html  css  js  c++  java
  • opencv学习心得第二章

    opencv操作核心

    1:图像的基础操作

    获取像素值并且修改

    改变像素之前:

    import cv2#导入cv2模块
    img = cv2.imread("a.jpg")#读取图片
    cv2.imshow("image", img)#展示图片
    k = cv2.waitKey(0)&0xFF#等待键盘输入
    for i in range(625):#通过for循环找到图片的坐标
           for j in range(1024):#通过for循环找到图片的坐标
               print(i, j)输出i与j的值
               print(img[i, j])输出图像每个像素点的rgb值
               img[i, j] = [100, 25, 77]重新设置像素值
               print(img[i, j])输出像素值
    print(img.size)  输出图像的像素个数
    if k == ord("s"): 如果键盘上面按s
       cv2.imwrite("image-new.jpg",img)保存图像
       cv2.destroyAllWindows()关闭所有图像窗口
    

    改变像素以后:

     2:获取图像属性

    import cv2#导入模块
    img = cv2.imread("a.jpg")#读取图片
    print(img.shape)#图像的矩阵的行数和
    print(img.size)#图像像素个数
    print(img.dtype)
    

     3:改变BGR某一色道的数字

    原图像

    只显示B色道的像素值

    import cv2 #导入cv2模块
    img = cv2.imread("a.jpg")#读取图像
    img[:, :, 1] = 0#将图片的G通道像素设置为0
    img[:, :, 2 ] = 0#将图片的R通道像素设置为0
    cv2.imshow("image", img)#显示图片
    cv2.waitKey(0)
    

     

    只显示G色道像素值

    import cv2#导入模块
    img = cv2.imread("a.jpg")读取图片
    img[:, :, 0] = 0#把图片的B色道像素值设置为0
    img[:, :, 2 ] = 0#把图片的R色道像素值设置为0
    cv2.imshow("image", img)#显示图片
    cv2.waitKey(0)
    

    只显示R色道像素值

    import cv2导入模块
    img = cv2.imread("a.jpg")#读取图片
    img[:, :, 1] = 0#把图片的G通道像素值设置为0
    img[:, :, 0] = 0#把图片的B通道像素值设置为0
    cv2.imshow("image", img)#显示图片
    cv2.waitKey(0)
    

     

     图像的ROI

    import cv2 #导入模块
    img = cv2.imread("a.jpg")#读取图像
    a = img[300:400, 300:400]#截取图像的一个区域
    img[0:100, 0:100] = a #将截取的区域赋值给相同的一个新区域
    cv2.imshow("image", img)#显示图片
    cv2.waitKey(0)
    

     

    图像上面的算术运算

    图像的混合

    import cv2#导入模块
    img1 = cv2.imread("c.jpg")#读取图像
    img2 = cv2.imread("d.jpg")#读取图像
    
    dst = cv2.addWeighted(img1,0.7,img2,0.3,0)#将两个图像叠加到一起
    
    cv2.imshow("dst",dst)#显示图像
    cv2.waitKey(0)
    

     img1图像

    img2图像

    两个图像的混合图像

  • 相关阅读:
    序列化和反序列化&持久化
    基于qiankun微前端的部署方案
    【MySQL】Explain执行计划 type类型说明
    【ElasticSearch】index read-only
    【MybatisPlus】Wrappers条件构造器构造or条件查询
    【布隆过滤器】基于Resisson的实现的布隆过滤器
    Nacos源码分析(三): 心跳设计
    Nacos源码分析(二):服务端和客户端实例注册
    Nacos源码分析(一): Nacos源码环境搭建
    【linux】如何在linux中查找文件、进程
  • 原文地址:https://www.cnblogs.com/lyx958700392/p/6383442.html
Copyright © 2011-2022 走看看