使用OpenCV获取我们想要的图片区域

场景描述

给定一张图片,从中截取出你需要的区域,并且以指定的大小显示出来。比如我们想获得下面这张图片的K,并且竖直显示。
使用OpenCV获取我们想要的图片区域

实现代码

看起来比较困难,但是用cv2库,实现起来其实只有9句代码。

  • 首先定义下输出图片的宽为250,高为350。
  • 然后读取我们的图片,就是上面这张图。
  • 定义需要获取区域的四个点,分别为:左上、右上、左下、右下。
  • 定义区域输出时的位置,固定写法。
  • 使用库函数实现投影变换。
  • 输出并且显示图片。
import cv2
import numpy as np
width,height=250,350
img=cv2.imread("Resources/poker.jpg")
pst1=np.float32([[734,185],[1101,266],[621,679],[1030,789]])
pst2=np.float32([[0,0],[width,0],[0,height],[width,height]])
matrix=cv2.getPerspectiveTransform(pst1,pst2)
imgOutput=cv2.warpPerspective(img,matrix,(width,height))

cv2.imshow("Image",img)
cv2.imshow("Output",imgOutput)
cv2.waitKey(0)
实现效果

左侧就是我们提取的图片,右侧是原图。
使用OpenCV获取我们想要的图片区域

上一篇:python numpy的一些基本使用


下一篇:Python深度学习:机器学习理论知识,包含信息熵的计算(读书笔记)