OpenCV笔记

这篇博客详细介绍了使用OpenCV进行图像处理的各种操作,包括读取与显示图像、转换为灰度图、RGB调整、高斯模糊、边缘检测、膨胀与腐蚀、图像重采样和裁剪、绘制形状以及文字。此外,还涵盖了图像扶正的基本原理和实现方法,适合对图像处理感兴趣的读者深入学习。
摘要由CSDN通过智能技术生成
  • 读取图片
img = cv2.imread("filepath")
cv2.imshow("window",img)
#表示等待
cv2.waitkey(0)
  • 灰度图
imggray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imshow("灰度图",imggray)
  • rgb
imgrgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

cv2.imshow("rgb",imgrgb)
  • 高斯模糊
#高斯模糊
imgBlur = cv2.GaussianBlur(img,(19,19),0)

cv2.imshow("blut",imgBlur)
  • 提取轮廓
imgEdge = cv2.Canny(imgBlur,100,100)

cv2.imshow("img edge",imgEdge)
  • 膨胀

可以有些时候边缘连不起来,就可以用膨胀算法进行迭代,迭代的次数越多,线就会越粗

kernel = np.ones((5,5),np.uint8)
imgDialation = cv2.dilate(imgEdge,kernel,iterations=13)
  • 腐蚀

和上面的膨胀相反,这是让线条变细的操作

kernel = np.ones((5,5),np.uint8)
imgEroded = cv2.erode(imgDialation,kernel,iterations=1)
  • resize

重新定义大小

imgSmall = cv2.resize(img,(200,150))
  • 裁剪
imgCropped = img[0:200,0:200]

​ 直接通过数组的方式进行裁剪,从上到下,从左到右

  • 黑色以及白色
imgBlack = np.zeros((512,512))

imgWhite = np.ones((512,512))

​ 矩阵中,黑色表示0,白色表示1,numpy是个矩阵运算库

  • 初始化黑色
imgBlack = np.zeros((512,512,3),np.uint8)

同时初始化了三通道

  • 给图片上蓝色

    img[:] = 255,0,0
    

    三通道是BGR,想给别的颜色赋值均可自动调节

  • 裁剪并赋值

    就是裁剪的范围加颜色

  • 画线

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

    在那张图片上画

    起点

    终点

    颜色

    粗细

    终点是先横再竖

  • 画矩形

    cv2.rectangle(img,(0,0),(200,300),(0,0,255),2)
    #表示填充
    cv2.rectangle(img,(0,0),(200,300),(0,0,255),cv2.FILLED)
    

    在什么上画

    起点

    终点

    颜色

    粗细

  • 画圆形

    cv2.circle(img,(100,100),30,(0,255,0),cv2.FILLED)
    
  • 写字

    cv2.putText(img,"zhangjiarui",(100,100),cv2.FONT_ITALIC,1,(0,123,123),2)
    

    开始的位置

    字体

    字号

    颜色

    粗细

  • 将图形扶正

    pic1 = np.float32([[300,0],[300,400],[0,0],[0,400]])
    
    pic2 = np.float32([[0,0],[400,0],[0,300],[400,300]])
    
    matirx = cv2.getPerspectiveTransform(pic1,pic2)
    
    imgOut = cv2.warpPerspective(img,matirx,(400,300))
    

    前面是之前的图片,右边是之后的图片位置,点的位置一定要对应好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值