当前位置:   article > 正文

[图像识别]2.OpenCV基础操作_opencv 图像识别

opencv 图像识别

目录

1.图像导入与导出

图像导入

图像显示

图像导出

 2.绘制几何图形

 3.获取和修改像素点

 4.获取图像属性

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

6.色彩空间的改变

总结 ,这节课你学到了什么


首先导入opencv库

import cv2

可以使用as来修改名称

import 库名称 as 自定义名称

例如

import cv2 as cv

1.图像导入与导出

图像导入

图像变量=cv2.imread("图片路径名",参数1)

图片路径名:

直接图片名称,记得将图片放在主函数同一文件夹下

如果不在同一文件夹下,也可以通过相对位置例如“../../1.jpg”的方式导入

注:如果路径有错误不会报错,会返回一个None

参数1:

  • IMREAD_UNCHANDED(<0) alpha通道加载图像
  • IMREAD_GRAYSCALE(0) 表示吧原图作为灰度图像加载进来
  • IMREAD_COLOR(>0) 彩色模式加载图像

 默认加载时是加载BGR图像(即每个像素点用三个变量表示,B Bule蓝色,G Green绿色,R Red红色)

#1.1

  1. import cv2
  2. pic=cv2.imread('1.jpg')
  3. print(pic[0,0])#(0,0,)坐标像素打印BGR颜色值
  4. cv2.imshow("image",pic)
  5. cv2.waitKey(0)#暂停

imread函数中参数1 讨论:

 (1)将上面1.1代码第2行换成

pic=cv2.imread('1.jpg',0)

 

 (2)将上面1.1代码第2行换成

pic=cv2.imread('1.jpg',1)
pic=cv2.imread('1.jpg',-1)

 和默认一样

小拓展:最简单灰度L图像转变成假彩色原理(略)

opencv中有函数cvtColor()

图像显示

cv2.imshow("窗口名",图像变量)

这个函数也是以BGR模式显示图像,即显示原图

但是如果用matplotlib.pyplot.imshow()函数是以RGB模式显示,需要转换

 python基本语法[]和:组合截取图像

#1.2

  1. import cv2
  2. pic=cv2.imread('1.jpg')
  3. cv2.imshow("RGB",pic[0:100,0:500,::-1])#翻转通道,使得成为RGB通道,但cv2.imshow()显示是BGR模式(plt显示是RGB),会使图片的B与R通道值交换,颜色变化
  4. cv2.imshow("BGR",pic[0:100,0:500])
  5. cv2.waitKey(0)

结果:

 可以看出,坐标系原点在图片左上角,[]中第一个参数代表高度,第二个代表宽度,第三个代表颜色通道(0B,1G,2R)

图像导出

cv2.imwrite("图像路径名",图像变量)

#1.3

  1. import cv2
  2. pic=cv2.imread('1.jpg')
  3. cv2.imwrite("save.jpg",pic)
  4. cv2.waitKey(0)

结果:

 2.绘制几何图形

绘制直线

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

img:图像变量

start,end:直线起始,终点

color:颜色

thickness:宽度

 绘制圆形

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

centerpoint:圆心

r:半径

绘制矩形

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

leftupper:左上角坐标

rightdown:右下角坐标

添加文字

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

text:文本

station:位置

font:字体

fontsize:字体大小

举例:

#1.4

  1. import cv2
  2. import numpy as np
  3. pic=np.zeros((600,600,3),np.uint8)#创建空白图像
  4. cv2.line(pic,(0,0),(100,100),(50,255,6),5)#划线
  5. cv2.circle(pic,(100,100),50,(255,255,255),1)#划圆
  6. cv2.rectangle(pic,(200,200),(400,400),(66,55,255),10)#划矩形
  7. cv2.putText(pic,"Hellow",(0,400),1,10,(255,0,1),1)
  8. cv2.imshow("image",pic[:,:,::-1])#RGB模式显示
  9. cv2.waitKey(0)

 

 3.获取和修改像素点

RGB图像像素点是个RGB三元数组,灰度图像像素点是灰度值

img[x,y,c]=color

img:图像变量

x:x坐标值,可以用:,例如100:200获取100到200的x坐标

y:y坐标值,可以用:,例如100:200获取100到200的y坐标

c:颜色通道,不写为BGR模式,0索引B,1索引G,2索引R,可以用:

color:修改的颜色

#1.5

  1. import cv2 as cv
  2. pic = cv.imread("1.jpg")
  3. px=pic[100,100]#(100,100)位置点三通道像素
  4. print(px)
  5. pxBlue=pic[100,100,0]#0索引通道即B蓝色通道数值
  6. print(pxBlue)
  7. #修改像素值
  8. pic[100:200, 100:200]=(255, 255, 255)
  9. cv.imshow("image", pic[:, :, ::-1]) # RGB模式显示
  10. cv.waitKey(0)

结果

 4.获取图像属性

 #1.6

  1. import cv2 as cv
  2. pic = cv.imread("1.jpg")
  3. print(pic.shape)
  4. print(pic.size)
  5. print(pic.dtype)
  6. cv.waitKey(0)

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

图像拆分

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

图像合并

img=cv2.merge((b,g,r))

举例

#1.7

  1. import cv2 as cv
  2. import numpy as np
  3. pic = cv.imread("1.jpg")
  4. b, g, r = cv.split(pic)#拆分BGR
  5. pic2 = cv.merge((g, b, r))#以GBR模式组合
  6. cv.imshow("rgb",pic)
  7. cv.imshow("gbr",pic2)
  8. cv.waitKey(0)

结果

6.色彩空间的改变

cv2.cvtColor(img,flag)

flag:

cv2.COLOR_BGR2GRAY   BGR与GRAY转换

cv2.COLOR_BGR2HSV   BGR与HSV转换

 #1.8

  1. import cv2 as cv
  2. pic = cv.imread("1.jpg")
  3. pic1=cv.cvtColor(pic, cv.COLOR_BGR2GRAY)
  4. pic2=cv.cvtColor(pic, cv.COLOR_BGR2HSV)
  5. cv.imshow("GRAY", pic1)
  6. cv.imshow("HSV", pic2)
  7. cv.waitKey(0)

结果

总结 ,这节课你学到了什么

import 库名称 as 自定义名称

图像变量=cv2.imread("图片路径名",参数1)

cv2.imshow("窗口名",图像变量)

cv2.imwrite("图像路径名",图像变量)

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

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

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

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

img[x,y,c]=color

print(pic.shape)
print(pic.size)
print(pic.dtype)

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

img=cv2.merge((b,g,r))

cv2.cvtColor(img,flag)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/263995
推荐阅读
相关标签
  

闽ICP备14008679号