小白opencv的入门处理技巧


在这里插入代码片@TOC**

在这里插入代码片
import cv2
import numpy as np
#i=cv2.imread("D:\\TP\\MT1.jfif",CV2.IMREAD_UNCHANGED) #读入图像并取名
#CV2.imshow("demo",i)      #显示文件,demo是显示窗口名
#cv2.waitKey(-1)      #显示文件等待时间,参数=0,无线等待;参数<0,等待键盘单击;参数>0,等待给定的毫秒
#cv2.destroyAllWindows()   #删除所有的窗口
##########修改像素值########
#1.图像以灰度形式取出,提取像素的灰度值
#cv2.imwrite("D:\\TP\\MT2.jpg",i)  #保存文件,i是图像名字,‘D\\TP\\MT2是路径名
#i=cv2.imread("D:\\TP\\MT1.jfif",cv2.IMREAD_GRAYSCALE)         #读入图像并取名,是灰色图形
#print(p)          #打印像素点的灰度值或者BGR
#i[200,200]=120           #修改灰度值
#print(i[200,200])       #输出修改后的灰度值
#2.图像以bgr形式取出,提取像素点的bgr值
#i=cv2.imread("D:\\TP\\MT2.jfif",cv2.IMREAD_UNCHANGED)
#i[100,100,0]=100       #【100,100】像素点的b通道的值改为100.   0-b通道。1-g通道。2-r通道
#p=i[100,100]               #图像第100行,100列像素点的像素值
#print(p)       #打印第一百行,一百列的像素点的像素值
#i[100,200]=[250,250,250]             #修改第100行,200列的像素点的b通道值改为250,g通道改为250,r通道改为250
#i=[100,200]
#print(i)
#2.范围修改
#i=cv2.imread("D:\\TP\\MT1.jfif")
# cv2.imshow('original',i)
# i[50:100,100:200]=[100,200,100]           #将制定范围(50:100,100:200)的bgr值修改为【100.200.100】
# cv2.imshow('original2',i)
# cv2.waitKey(-1)
# cv2.destroyAllWindows()
#
##########numpy处理图像##########
# import cv2
# import numpy as np
# # i=cv2.imread("D:\\TP\\MT1.jfif",cv2.IMREAD_UNCHANGED)  #读入文件,彩色模式
# print(i.item(100,100,0))               #输出100行,100列像素点0通道的值
# i.itemset((100,100,0),255)             #修改100行,100列像素点0通道的值为255
# print(i.item(100,100,0))                    #输出修改后0通道的值
# print(i.item(100,100,1))                   #输出100行,100列1通道的值
# i.itemset((100,100,1),255)                 #修改1通道的值为255
# print(i.item(100,100,1))                      #输出修改后的值
# print(i.item(100,100,2))                         #输出100行,100列2通道的值
# i.itemset((100,100,2),255)                          #修改2通道的值
# print(i.item(100,100,2))                       #输出修改后的2通道的值
############获取图像的属性##########
#import cv2
# img1=cv2.imread("D:\\TP\\MT1.jfif",cv2.IMREAD_GRAYSCALE) #读取灰色图像
# img2=cv2.imread("D:\\TP\\MT2.jfif")        #读取彩色图像
# print(img1.shape)                          #shape获取图像的形状,返回行,列,通道的元组,若为灰度图像则返回行列数
# print(img1.size)                   #size获取图像的像素数目,灰度图则行*列,彩色图像返回行*列*通道
# print(img1.dtype)              #dtype返回每个像素点的数据类型
#
# print(img2.shape)                 #shape可获取图像的属性,返回行,列,通道的元组
# print(img2.size)               #size获取图像的像素数目,彩色图返回行*列*通道,灰度图则返回行*列
# print(img2.dtype)                       #dtype返回像素点的数据类型
#########图像roi(region if interest  图像感兴趣区域)
#从被处理的图像以方框,椭圆之类的形状勾勒出所需要得到处理的区域
#通过各种算法(operator)和函数来求感兴趣区域的roi,并对图像进行下一步处理
#########同一图像的复制
# import cv2
# import numpy as np
# a=cv2.imread("D:\\TP\\MT2.jfif")
# face=np.ones((101,101,3))             #创建101行*101列图像,3通道
# cv2.imshow("a",a)          #显示图像a
# face=a[220:400,230:350]            #提取a图像的感兴趣区域赋值给face
# a[0:180,0:120]=face
# cv2.imshow('face',face)
# cv2.imshow('result',a)
# cv2.waitKey()
# cv2.destroyAllWindows()############不同图像的复制
# a=cv2.imread("D:\\TP\\MT1.jfif")               #读取彩色图像
# b=cv2.imread("D:\\TP\\MT2.jfif")             #读取彩色图像
# face=np.ones((101,101,3))           #创建一个感兴趣区域,101列,101行,3通道
# cv2.imshow('qwe',a)                   #显示a图片
# cv2.imshow('qwe2',b)              #显示图片b
# cv2.imshow('face',face)               #显示创建的空白图片face
# face=a[200:300,250:350]              #提取图片a中感兴趣区域赋值给face
# b[40:140,100:200]=face                #将感兴趣的区域赋给图片b
# cv2.imshow('result',b)                  #显示最终的结果
# cv2.waitKey(-1)
# cv2.destroyAllWindows()
# cv2.imshow('face',b)                          #显示b区域
# cv2.waitKey(-1)
# cv2.destroyAllWindows()
# face=img1[500:700,200:400]                      #通过下标方式选取
# img1[600:800,400:600]=face                     #将face区域复制到指定区域【200:400,300:500】
# cv2.imshow('result',i)
# cv2.waitKey(-1)
# cv2.destroyAllWindows()
###############通道的拆分与合并##########33
#通道的拆分1
a=cv2.imread("D:\\TP\\MT2.jfif",cv2.IMREAD_UNCHANGED)
b,g,r=cv2.split(a)
cv2.imshow('b',b)
cv2.imshow('g',g)
cv2.imshow('r',r)
cv2.waitKey()
cv2.destroyAllWindows()
#通道的拆分2
# a=cv2.imread("D:\\TP\\MT2.jfif")
# b=cv2.split(a)[0]
# g=cv2.split(a)[1]
# r=cv2.split(a)[2]
# cv2.imshow('B',b)
# cv2.waitKey()
# cv2.destroyAllWindows()
#图像的合并
#原通道的合并
import cv2
import numpy as np
# a=cv2.imread("D:\\TP\\MT1.jfif")
# b,g,r=cv2.split(a)
# bgr=cv2.merge([b,g,r])
# rgb=cv2.merge([r,g,b])
# cv2.imshow('bgr',bgr)
# cv2.imshow('rgb',rgb)
# cv2.waitKey()
# cv2.destroyAllWindows()
##单通道与双通道的合并
##b通道与其他两个通道的合并
# a=cv2.imread("D:\\TP\\MT2.jfif")
# rows,cols,chn=a.shape
# b=cv2.split(a)[0]
# g=np.zeros((rows,cols),dtype=a.dtype)
# r=np.zeros((rows,cols),dtype=a.dtype)
# m=cv2.merge([b,g,r])
# cv2.imshow('B-merge',m)
# cv2.waitKey()
# cv2.destroyAllWindows()
##g通道与其他两个通道的合并
# a=cv2.imread("D:\\TP\\MT2.jfif")
# rows,cols,chn=a.shape
# b=np.zeros((rows,cols),dtype=a.dtype)
# g=cv2.split(a)[1]
# r=np.zeros((rows,cols),dtype=a.dtype)
# m=cv2.merge([b,g,r])
# cv2.imshow('g-merge',m)
# cv2.waitKey()
# cv2.destroyAllWindows()
##r通道与其他两个通道的合并
# a=cv2.imread("D:\\TP\\MT2.jfif")
# rows,cols,chn=a.shape
# b=np.zeros((rows,cols),dtype=a.dtype)
# g=np.zeros((rows,cols),dtype=a.dtype)
# r=cv2.split(a)[2]
# m=cv2.merge([b,g,r])
# cv2.imshow('r-merge',m)
# cv2.waitKey()
# cv2.destroyAllWindows()
以上就是opencv简单的操作了,后面还会继续进行讲解,里面的都不太难,就是需要大量的练习。

小白opencv的入门处理技巧相关推荐

  1. 零基础小白,如何入门计算机视觉?

    文章目录 零基础小白,如何入门计算机视觉? 宏观认识 入门书籍 进阶书籍 深入实践 深度学习 视觉SLAM 此文发于公众号:计算机视觉life. 原文链接:零基础小白,如何入门计算机视觉? 零基础小白 ...

  2. OpenCV Java入门六 使用神经网算法辩识人脸

    介绍 前面几章我们积累了足够的opencv使用技巧.这一章我们就会进入最激动人心的辩识人脸.我们知道识脸和辩识人脸有着本质的区别. 识脸:这是一个人的脸. 辩识人脸:这是谁的脸,这才是我们需要的. 我 ...

  3. 免费送书啦!《 OpenCV图像处理入门与实践》一本全搞定

    OpenCV 的基础图像操作都只是针对图像中的像素点,并不是直接对图像整体进行的操作.而很多时候并不能仅通过改变像素点来进行图像的操作,为此我们需要学习关于图像的算术操作. 1.图像加法 对于两张相同 ...

  4. ztree树封装 json实例_小白7天入门PHP Web开发 - Day 6[下](综合)个人博客实例讲解用户数据的存储...

    <小白7天入门PHP Web开发>系列文章,面向单纯善良的完全不懂Web开发编程的入门速成课程,小白们如果感兴趣可以研读此系列文章,也可以连线提问.各路大神有何指教还请指点一二.希望各路大 ...

  5. MarkDown入门及技巧

    MarkDown入门及技巧 你可以在Github上看到这篇文档的纯文本https://github.com/onlynight/ReadmeDemo/tree/master/Readmes/MarkD ...

  6. python视频教程从入门到精通全集-零基础小白python从入门到精通视频(全60集)...

    零基础小白python从入门到精通视频(全60集)课程目录: [真心软件]01Python编程语言历史及特性.mp4 [真心软件]02Python编程语言初接触.mp4 [真心软件]03Python程 ...

  7. OpenCV 机器视觉入门精选 100 题(附 Python 代码)

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 如今深度学习的快速发展给计算机视觉注入了前所未有的新活力!其中在计算机图形学和计算机视觉里面最 ...

  8. OpenCV图像入门

    OpenCV图像入门 OpenCV图像入门 目标 源代码 解释 OpenCV图像入门 目标 在本教程中,您将学习如何: 从文件读取图像(使用cv :: imread) 在OpenCV窗口中显示图像(使 ...

  9. [Python图像处理] 三十五.OpenCV图像处理入门、算数逻辑运算与图像融合(推荐)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

最新文章

  1. subprocess installed post-installation script returned error exit status 1
  2. Dokcer进阶之Compose 实战官方flask、wordpress、spring-boot
  3. 推荐系统笔记(其它应用算法)
  4. 在Windows下为PHP安装redis扩展
  5. mysql数据库备份(完全备份,增量备份)
  6. Android Handler异步通信:深入详解Handler机制源码
  7. 算法工程师面试基础题目及答案
  8. Lucid Dream
  9. 双赛道近四百万奖金,2021全国人工智能大赛来了
  10. Initramfs文件系统的制作
  11. vector<int> v 与 vector<int> v(n) 的区别
  12. Excel中VLOOKUP函数的详细用法(灰常有用,求加精!求加精!)
  13. kerboros协议讲解
  14. 动手写操作系统3----软盘读写逻辑实现
  15. 漏洞分析丨HEVD-0x8.IntegerOverflow[win7x86]
  16. 行业研究报告-全球与中国电压变送器市场现状及未来发展趋势
  17. java调试体系(JDPA)
  18. 输电线路巡检机器人PPT_常见的电力行业智能巡检方案.ppt
  19. java mp3 信息_java读取MP3的信息 | 学步园
  20. 基于Lucene shingle英文单词NGram Analyzer的实现

热门文章

  1. 【Solidity】8. 杂项 - 深入理解Solidity
  2. Kernel Data Structures [LKD 06]
  3. MySql索引查询优化 千万级数据普通查询和建立索引后数据查询耗时对比
  4. 苏州IT/互联网交流群
  5. 【repo使用指南】
  6. Segment Routing基础知识
  7. clang++.exe: error: unknown argument: ‘-static-openmp‘ ninja: build stopped: subcommand failed.
  8. 【HHHOJ】ZJOI2019模拟赛(十五)03.17 解题报告
  9. 论文笔记 ACL2021|CLEVE-Contrastive Pre-training for Event Extraction
  10. 《追风筝的人》or《THE KITE RUNNER》