小白opencv的入门处理技巧


小白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简单的操作了,后面还会继续进行讲解,里面的都不太难,就是需要大量的练习。
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值