python+opencv(一)

第一章 入门基础

图像的读取、显示、保存

读取
retval=cv2.imread(“文件名”[,显示控制参数])
常用控制参数有 :

  1. cv2.IMREAD_UNCHANGED
  2. cv2.IMREAD_GRAYSCALE
  3. cv2.IMREAD_COLOR

显示
None=cv2.imshow(“窗口名”,图像名)
retval=cv2.waitKey([,delay])
delay:

  1. delay>0 等待delay毫秒
  2. delay<0 等待键盘单击
  3. delay=0 无限等待

删除所有窗口
cv2.destroyAllWindows()

保存
retval=cv2.imwrite(“文件地址”,文件名)

图像处理基础

图像处理入门基础

图像是由像素构成的
图像分类
二值图像 0 黑 1 白
灰度图像 0 纯黑 255纯白
RGB图像 0- 255 红色为(255,0,0)
备注:
RGB图像处理为灰度图像不会丢失信息
opencv里是bgr的顺序

像素处理

读取像素
返回值=图像(位置参数)

  1. 灰度图像
    p=imag[88,142]
    print§
  2. 彩色图像
    blue=imag[99,11,0]
    print(blue)
    返回三个通道的值
    p=imag[99,11]
    print ( p )

修改像素

  1. 灰度图像
    imag[x,y]=255
  2. 彩色图像
    一个通道 imag[x,y,0]=255
    三个通道 imag[x,y]=[1,2,3]

整体区域
imag[100:150,100:150]=[255,0,0]

使用numpy访问像素

灰度图像:

import cv2
import numpy as np
i=cv2.imread(“D:/123.jpg”,cv2.IMREAD_GRAYSCALE)
print(i.item(1,2))
i.itemset((1,2),2)
print(i.item(1,2))

彩色图像:

import cv2
import numpy as np
i=cv2.imread(“D:/123.jpg”,cv2.IMREAD_UNCHANGED)
print(i.item(1,2,2))
i.itemset((1,2,2),2)
print(i.item(1,2,2))

只能单通道更改

获取图像属性

  1. 形状、行、列、通道数
    shape 可以获取 (灰度图像不涉及通道数)
  2. 像素数目
    size可以获取像素数目
    灰度:行数x列数
    彩色:行数x列数x通道数
  3. 图像的数据类型
    dtype返回图像的数据类型 uint8

import cv2
import numpy as np
a=cv2.imread(“D:/123.jpg”,cv2.IMREAD_GRAYSCALE)
b=cv2.imread(“D:/123.jpg”,cv2.IMREAD_UNCHANGED)
print(a.shape)
print(b.shape)
print(a.size)
print(b.size)
print(a.dtype)
print(b.dtype)

(587, 667)
(587, 667, 4)
391529
1566116
uint8
uint8

感兴趣区域ROI(Region of interest)

import cv2
import numpy as np

b=cv2.imread(“D:/2.jpg”,cv2.IMREAD_UNCHANGED)
a=cv2.imread(“D:/1.jpg”,cv2.IMREAD_UNCHANGED)
c=a[100:200,100:200]
b[0:100,0:100]=c
cv2.imshow(“1+2”,b)
cv2.waitKey(0)
cv2.destroyAllWindows()

通道的拆分与合并

拆分通道:

B=imag[:,:,0]

b,g,r=cv2.split(imag)

b=cv2.split(imag)[0]
返回的都是灰度图像

合并通道:
m=cv2.merge([r,g,b])

import cv2
import numpy as np
imag=cv2.imread(“D:/1.jpg”,cv2.IMREAD_UNCHANGED)

r,l,c=imag.shape
g=np.zeros((r,l),imag.dtype) #造空通道
b=np.zeros((r,l),imag.dtype)
r=cv2.split(imag)[2]
m=cv2.merge([b,g,r])
cv2.imshow(“merge”,m)
cv2.waitKey(0)
cv2.destroyAllWindows()

持续更新中----------------------------------------------------------------------------------------

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值