C/C++教程

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

本文主要是介绍使用OpenCV获取我们想要的图片区域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
场景描述

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

实现代码

看起来比较困难,但是用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获取我们想要的图片区域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!