当前位置: > > > > 加油! RGB 转灰度
来源:stackoverflow
2024-04-19 18:00:34
0浏览
收藏
Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《加油! RGB 转灰度》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!
问题内容
我在将图像转换为灰度时遇到问题,你能帮我吗? 我是 go 和 go cv 的新手,但我已经完成了一个学期的图像处理,我正在做一个项目,以最佳路径在 7 个不同的地点获取一些用品。
package main import ( "gocv.io/x/gocv" "path/filepath" ) func main() { pizzaPath := filepath.Join("Mars.bmp") window := gocv.NewWindow("Hello Mars") windowB := gocv.NewWindow("Hello Gray Mars") MarsImg := gocv.NewMat() Marsgray := gocv.NewMat() MarsImg = gocv.IMRead(pizzaPath, gocv.IMReadColor) Marsgray = gocv.ConvertTo(*Marsgray,0) window.IMShow(MarsImg) window.WaitKey(0) windowB.IMShow(Marsgray) windowB.WaitKey(0) }
解决方案
这个问题很旧,但仍然出现在搜索结果中……所以这是对我有用的答案:
- 使用
gocv.cvtcolor(marsimg, &marsgray, gocv.colorbgrtogray)
而不是marsimg.convertto(&marsgray, 0)
转换为灰度 - 请务必在参数列表中传递指向灰度 mat(即
&marsgray
)的指针,而不是传递 mat 的值(即*marsgray
)
这个例子很有帮助:
以下是对适合我的原始代码的一些细微调整(为简单起见,在当前目录中使用 mars.png
):
import ( "gocv.io/x/gocv" ) func main() { window := gocv.NewWindow("Hello Mars") windowB := gocv.NewWindow("Hello Gray Mars") marsImg := gocv.IMRead("./Mars.png", gocv.IMReadColor) marsGray := gocv.NewMat() gocv.CvtColor(marsImg, &marsGray, gocv.ColorBGRToGray) window.IMShow(marsImg) windowB.IMShow(marsGray) windowB.WaitKey(0) }
到这里,我们也就讲完了《加油! RGB 转灰度》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注公众号,带你了解更多关于的知识点!