内存使用优化
This commit is contained in:
@@ -32,7 +32,9 @@ func HFNoiseFilter(img gocv.Mat, radius float64) gocv.Mat {
|
||||
// 执行 DFT
|
||||
DFT := gocv.NewMat()
|
||||
defer DFT.Close()
|
||||
gocv.Merge([]gocv.Mat{img32f, gocv.Zeros(rows, cols, gocv.MatTypeCV32F)}, &DFT)
|
||||
zero := gocv.Zeros(rows, cols, gocv.MatTypeCV32F)
|
||||
defer zero.Close()
|
||||
gocv.Merge([]gocv.Mat{img32f, zero}, &DFT)
|
||||
gocv.DFT(DFT, &DFT, gocv.DftComplexOutput)
|
||||
|
||||
// 中心化频谱
|
||||
@@ -126,6 +128,8 @@ func fftshift(input *gocv.Mat) {
|
||||
q3 := input.Region(image.Rect(cx, cy, input.Cols(), input.Rows())) // Bottom-Right
|
||||
|
||||
tmp := gocv.NewMatWithSize(q0.Rows(), q0.Cols(), input.Type())
|
||||
defer tmp.Close()
|
||||
|
||||
q0.CopyTo(&tmp)
|
||||
q3.CopyTo(&q0)
|
||||
tmp.CopyTo(&q3)
|
||||
@@ -133,6 +137,11 @@ func fftshift(input *gocv.Mat) {
|
||||
q1.CopyTo(&tmp)
|
||||
q2.CopyTo(&q1)
|
||||
tmp.CopyTo(&q2)
|
||||
|
||||
q0.Close()
|
||||
q1.Close()
|
||||
q2.Close()
|
||||
q3.Close()
|
||||
}
|
||||
|
||||
func visualizeDFT(DFT gocv.Mat, file string) {
|
||||
|
||||
Reference in New Issue
Block a user