Opencv 如何将基于Python键的排序代码转换为基于GO键的排序代码

Opencv 如何将基于Python键的排序代码转换为基于GO键的排序代码,opencv,go,gocv,Opencv,Go,Gocv,我是新来的。我正在将python中的代码转换为go。我想把这一行转换成GO。我查看了谷歌,但没有找到任何支持的解决方案。 我很难接受这个 # this will slice top five contour based on area cnt = sorted(contours, key=cv2.contourArea, reverse=True)[:5] 我在其中拍摄轮廓[]图像。点根据go键入 你知道我该怎么处理吗?你必须用sort软件包对你的切片进行排序,然后你可以用同样的方式挑选前五名

我是新来的。我正在将python中的代码转换为go。我想把这一行转换成
GO
。我查看了谷歌,但没有找到任何支持的解决方案。 我很难接受这个

# this will slice top five contour based on area
cnt = sorted(contours, key=cv2.contourArea, reverse=True)[:5]
我在其中拍摄轮廓
[]图像。点
根据go键入


你知道我该怎么处理吗?

你必须用
sort
软件包对你的切片进行排序,然后你可以用同样的方式挑选前五名(使用
[:5]

您可能需要编写一些自定义方法,以按照您希望的方式指导排序。中有几个示例-例如,请参阅
排序键

演示如何:

package main

import (
    "fmt"
    "sort"
)

type byLength []string

func (s byLength) Len() int {
    return len(s)
}
func (s byLength) Swap(i, j int) {
    s[i], s[j] = s[j], s[i]
}
func (s byLength) Less(i, j int) bool {
    return len(s[i]) < len(s[j])
}

func main() {
    fruits := []string{"peach", "banana", "kiwi"}
    sort.Sort(byLength(fruits))
    fmt.Println(fruits)
}
主程序包
进口(
“fmt”
“排序”
)
键入byLength[]字符串
func(s byLength)Len()int{
返回透镜(s)
}
func(s byLength)掉期(i,j int){
s[i],s[j]=s[j],s[i]
}
func(s byLength)减去(i,j int)bool{
返回len(s[i])
对于排序切片,您看过了吗?