然后把中间图像裁剪出来
时间: 2023-07-04 10:21:09 浏览: 44
在 Go 语言中,可以使用 `image` 包中的 `SubImage` 函数将原图像的指定部分裁剪出来。下面是一个简单的示例代码,演示了如何将上一步处理得到的二值化图像的中间部分裁剪出来:
```go
package main
import (
"image"
"image/color"
"image/draw"
"image/jpeg"
"os"
)
func main() {
// 读取图片
f, err := os.Open("output.jpg")
if err != nil {
panic(err)
}
defer f.Close()
img, err := jpeg.Decode(f)
if err != nil {
panic(err)
}
// 裁剪中间部分
subImg := img.(interface {
SubImage(image.Rectangle) image.Image
}).SubImage(image.Rect(img.Bounds().Dx()/4, img.Bounds().Dy()/4, img.Bounds().Dx()*3/4, img.Bounds().Dy()*3/4))
// 将裁剪后的图像保存到文件中
outputFile, err := os.Create("output_crop.jpg")
if err != nil {
panic(err)
}
defer outputFile.Close()
jpeg.Encode(outputFile, subImg, nil)
}
```
在上述代码中,我们首先使用 `jpeg.Decode` 函数读取上一步处理得到的二值化图像,然后使用 `SubImage` 函数将其中间部分裁剪出来。`image.Rect` 函数用于创建一个矩形,表示要裁剪的区域,这里将原图像的宽高分别缩小了 4 倍,然后取中间的一部分。最后将裁剪后的图像保存到指定路径的文件中。