Opencv-python基本操作

一.读取图片

img = cv2.imread("1.png",1)

参数::(1)要读取的图片(2)读取的方式

彩色加载:cv2.IMREAD_COLOR

灰度加载:cv2.IMREAD_GRAYSCALE

alpha加载:cv2.IMREAD_UNCHANGED

可以用1 0 -1 来代替上述三个加载方式

加载错误会显示None

二.显示图片

cv2.imshow("leave",img)

参数: (1)窗口名称(2)要加载的图片

名称得是英文的,中文的会报错

cv2.waitKey(0)

等待键盘输入,可以让图像显示出来,参数0表示一直显示,其他数字则是毫秒为单位为显示时间

三.保存图片

cv2.imwrite("a.png",img)

参数:(1)文件名(2)要保存的图像

四.绘制几何图形

1.绘制直线

cv2.line(img,(0,0),(511,511),(255,0,0),3)

cv2.line(img,start,end,color,thickness)

参数:(1)要绘制的图像(2)直线的起点(3)直线的终点(4)线条的颜色(5)线条的宽度

2.绘制圆形

cv2.circle(img,(447,63),63,(0,0,255),-1)

cv2.circle(img,centerpoint,r,color,thickness)

参数:(1)要绘制的图像(2)圆心(3)半径(4)线条的颜色(5)线条的宽度,-1表示闭合圆

3.绘制矩形

cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

cv2.rectangle(img,leftupper,rightdown,color,thickness)

 参数:(1)要绘制的图像(2)矩形左上角(3)矩形右下角(4)线条的颜色(5)线条的宽度

4.向图像中添加文字

cv2.putText(img,"Opencv",(10,500),font,4,(255,255,255),2,cv2.LINE_AA)

cv2.putText(img,text,station,font,fontsize,color,thickness,cv2.LINE_AA)

 参数:(1)图像(2)要写入的文本数据(3)文本的放置位置(4)字体(5)字体大小

5.效果演示

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = np.zeros((512,512,3),np.uint8)#创建一个空白图像
cv2.line(img,(0,0),(511,511),(255,0,0),3)
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
cv2.circle(img,(447,63),63,(0,0,255),-1)
font = cv2.FONT_HERSHEY_COMPLEX
cv2.putText(img,"Opencv",(10,500),font,4,(255,255,255),2,cv2.LINE_AA)
cv2.imshow("amage",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

五.图像认知

1.改变像素值

px = img[100,100]

得到的是某个点的RGB numpy数组值 [ 38 124 131]

img[100,100] = [255,255,255]

这样就可以修改某个点的像素

 2.获取图像的属性

img.shape    #形状
img.size     #图像大小    
img.dtype    #数据类型

img.shape (244, 312, 3) 行列以及通道

img.dtype :uint8

img.size :228384 像素数 即244*312*3

3.图像通道的拆分与合并

有时候需要在B,G,R通道图像上单独工作,这种情况下,需要将BGR图像分割成为单个通道。或者在其他情况下,可能需要将这些单独的通道合并到BGR图像。

#通道拆分
b,g,r = cv2.split(img) #blue green red

#通道合并
img = cv2.merge((b,g,r))

4.色彩空间的改变

Opencv中有150多种颜色通道,常用的就两种

cv2.cvtColor(input_image,flag)

参数:(1) 进行颜色空间转化的图像(2)转换类型

cv2.COLOR_BGR2GRAY:BGR → GRAY

cv2.COLOR_BGR2HSV   :BGR → HSV

5.图像的加法

主要有两种操作 opencv加法 与 numpy加法

import numpy as np
import cv2
x = np.uint8([250])
y = np.uint8([10])
print(cv2.add(x,y)) # 250+10 = 260 = 255 
print(x+y)          #250+10 =  260 = 4(260-256)

Opencv加法是饱和操作 numpy加法是模块运算 Opencv的加法结果会更好一些

import numpy as np
import cv2
img1 = cv2.imread("1.png")
img2 = cv2.imread("2.png")
img3 = cv2.add(img1,img2)
#img3 = img1+img2
cv2.imshow("image",img3)
cv2.waitKey()
cv2.destroyAllWindows()

加法大致就是图像合并效果

6.图像的混合

g(x) = (1-a)f0(x) + af1(x)  图像的权重 就是占的比例

dst= a*img1 + b*img2 + c c是常数

cv2.addweight()

import numpy as np
import cv2
img1 = cv2.imread("1.png")
img2 = cv2.imread("2.png")
img3 = cv2.addWeighted(img1,0.7,img2,0.3,0)
cv2.imshow("image",img3)
cv2.waitKey()
cv2.destroyAllWindows()

加法和混合更推荐opencv的混合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值