gocv截取图片的部分

gocv截取图片

C++的opencv库是可以直接截取某个图片的部分的,比如:

Mat src = imread("image.png");
Rect crop(1, 1, 64, 67);
Mat rez = src(crop);

如上代码,读取image.png并截取其中的矩形部分。

但是gocv中的Mat并没有像C++那样的构造方法,传入一个矩形Rect就可以构造一个Mat。

Google了一下,发现Github上面有人提了issue,正是我想要的答案:https://github.com/hybridgroup/gocv/issues/535

解决方法是这样的,使用Mat.Region()方法:

croppedMat := img.Region(image.Rect(100, 100, 200, 200))
resultMat := croppedMat.Clone()
示例

我这里有一个图片image.png如下图:
在这里插入图片描述
然后现在我要把它横着截取上面一半出来:

func main() {
	src := gocv.IMRead("image.png", gocv.IMReadColor)
	croppedMat := src.Region(image.Rect(0, 0, src.Cols(), src.Rows()/2))
	resultMat := croppedMat.Clone()
	gocv.IMWrite("croppedMat.png", resultMat)
}

运行之后生成一个croppedMat.png,如下图:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值