长条带生产需要分段滤波
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package rrc
|
package rrc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"image"
|
"image"
|
||||||
"math"
|
"math"
|
||||||
|
|
||||||
@@ -166,3 +167,32 @@ func visualizeDFT(DFT gocv.Mat, file string) {
|
|||||||
// 保存DFT结果
|
// 保存DFT结果
|
||||||
gocv.IMWrite(file, out)
|
gocv.IMWrite(file, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func HFNoiseFilterSep(img gocv.Mat, radius float64) gocv.Mat {
|
||||||
|
const SepHeight = 4096
|
||||||
|
IDFT := gocv.NewMat()
|
||||||
|
IDFTs := []gocv.Mat{}
|
||||||
|
for rows := 0; rows < img.Rows(); rows += SepHeight {
|
||||||
|
row0 := rows
|
||||||
|
row1 := rows + SepHeight
|
||||||
|
if row1 > img.Rows() {
|
||||||
|
row1 = img.Rows()
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("doing HF noise fileter rows range:", row0, row1)
|
||||||
|
|
||||||
|
mat := img.Region(image.Rect(0, row0, img.Cols(), row1))
|
||||||
|
matFiltered := HFNoiseFilter(mat, radius)
|
||||||
|
IDFTs = append(IDFTs, matFiltered)
|
||||||
|
}
|
||||||
|
|
||||||
|
gocv.Vconcat(IDFTs[0], IDFTs[1], &IDFT)
|
||||||
|
IDFTs[0].Close()
|
||||||
|
IDFTs[0].Close()
|
||||||
|
for i := 2; i < len(IDFTs); i++ {
|
||||||
|
gocv.Vconcat(IDFT, IDFTs[i], &IDFT)
|
||||||
|
IDFTs[i].Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
return IDFT
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user