引用诗句是句号用法:GO语言中使用OpenCV
来源:百度文库 编辑:偶看新闻 时间:2024/04/29 13:07:01
GO语言绑定
项目主页: http://code.google.com/p/go-opencv/
BBS讨论: http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=9145
Debian下安装:
- 安装OpenCV开发包
- 安装go语言环境, 参考 http://golang.org 官方文档
- svn下载最新go-opencv代码
- cd go-opencv
- make install
- make hellocv
- ./hellocv
- cd go-opencv/samples
- make
- ./edge
- ./inpaint
目前完成了
// Copyright 2011[编辑]. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package mainimport ("fmt""opencv""os")func main() {filename := "./samples/lena.jpg"if len(os.Args) == 2 {filename = os.Args[1]}image := opencv.LoadImage(filename)if image == nil {panic("LoadImage fail")}defer image.Release()win := opencv.NewWindow("Go-OpenCV")defer win.Destroy()win.SetMouseCallback(func(event, x, y, flags int) {fmt.Printf("event = %d, x = %d, y = %d, flags = %d\n",event, x, y, flags,)})win.CreateTrackbar("Thresh", 1, 100, func(pos int) {fmt.Printf("pos = %d\n", pos)})win.ShowImage(image)opencv.WaitKey(0)}
例子: samples/edge
http://code.google.com/p/go-opencv/wiki/edge
// Copyright 2011[编辑]. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package mainimport ("fmt""opencv""os")func main() {filename := "./lena.jpg"if len(os.Args) == 2 {filename = os.Args[1]}image := opencv.LoadImage(filename)if image == nil {panic("LoadImage fail")}defer image.Release()w := image.Width()h := image.Height()// Create the output imagecedge := opencv.CreateImage(w, h, opencv.IPL_DEPTH_8U, 3)defer cedge.Release()// Convert to grayscalegray := opencv.CreateImage(w, h, opencv.IPL_DEPTH_8U, 1)edge := opencv.CreateImage(w, h, opencv.IPL_DEPTH_8U, 1)defer gray.Release()defer edge.Release()opencv.CvtColor(image, gray, opencv.CV_BGR2GRAY)win := opencv.NewWindow("Edge")defer win.Destroy()win.SetMouseCallback(func(event, x, y, flags int, param ...interface{}) {fmt.Printf("event = %d, x = %d, y = %d, flags = %d\n",event, x, y, flags,)})win.CreateTrackbar("Thresh", 1, 100, func(pos int, param ...interface{}) {edge_thresh := posopencv.Smooth(gray, edge, opencv.CV_BLUR, 3, 3, 0, 0)opencv.Not(gray, edge)// Run the edge detector on grayscaleopencv.Canny(gray, edge, float64(edge_thresh), float64(edge_thresh*3), 3)opencv.Zero(cedge)// copy edge pointsopencv.Copy(image, cedge, edge)win.ShowImage(cedge)fmt.Printf("pos = %d\n", pos)})win.ShowImage(image)for {key := opencv.WaitKey(20)if key == 27 {os.Exit(0)}}os.Exit(0)}
例子: samples/inpaint
http://code.google.com/p/go-opencv/wiki/inpaint
// Copyright 2011. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package mainimport ("fmt""opencv""os")func main() {filename := "./fruits.jpg"if len(os.Args) == 2 {filename = os.Args[1]}img0 := opencv.LoadImage(filename)if img0 == nil {panic("LoadImage fail")}defer img0.Release()fmt.Print("Hot keys: \n","\tESC - quit the program\n","\tr - restore the original image\n","\ti or ENTER - run inpainting algorithm\n","\t\t(before running it, paint something on the image)\n",)img := img0.Clone()inpainted := img0.Clone()inpaint_mask := opencv.CreateImage(img0.Width(), img0.Height(), 8, 1)opencv.Zero(inpaint_mask)//opencv.Zero( inpainted )win := opencv.NewWindow("image")defer win.Destroy()prev_pt := opencv.Point{-1, -1}win.SetMouseCallback(func(event, x, y, flags int, param ...interface{}) {if img == nil {os.Exit(0)}if event == opencv.CV_EVENT_LBUTTONUP ||(flags&opencv.CV_EVENT_FLAG_LBUTTON) == 0 {prev_pt = opencv.Point{-1, -1}} else if event == opencv.CV_EVENT_LBUTTONDOWN {prev_pt = opencv.Point{x, y}} else if event == opencv.CV_EVENT_MOUSEMOVE &&(flags&opencv.CV_EVENT_FLAG_LBUTTON) != 0 {pt := opencv.Point{x, y}if prev_pt.X < 0 {prev_pt = pt}rgb := opencv.ScalarAll(255.0)opencv.Line(inpaint_mask, prev_pt, pt, rgb, 5, 8, 0)opencv.Line(img, prev_pt, pt, rgb, 5, 8, 0)prev_pt = ptwin.ShowImage(img)}})win.ShowImage(img)opencv.WaitKey(0)win2 := opencv.NewWindow("inpainted image")defer win2.Destroy()win2.ShowImage(inpainted)for {key := opencv.WaitKey(20)if key == 27 {os.Exit(0)} else if key == int("r"[0]) {opencv.Zero(inpaint_mask)opencv.Copy(img0, img, nil)win.ShowImage(img)} else if key == int("i"[0]) || key == int("\n"[0]) {opencv.Inpaint(img, inpaint_mask, inpainted, 3,opencv.CV_INPAINT_TELEA,)win2.ShowImage(inpainted)}}os.Exit(0)}
opencv哪个版本中有cv096d.dll啊?
OPencv 是什么
请问c语言中for的使用
c 语言中如何使用汉字
C语言中能使用中文吗
c语言中if的详细使用?
在wml中如何使用php语言
c语言中关于typedef的使用
在VFP中,SELECT语言中什么时候使用JOIN语句
怎样把HTML语言转换到CSS中使用啊
C语言中,图像处理函数的使用
never mind 在什么语言情境中使用
怎样在网页中使用HTML语言插入图片?跪谢~!!~!~
怎样在网页中使用HTML语言插入图片?跪谢!!!!!!!!!!
香港的高中的“中五”使用什么语言教学?
C语言中嵌入SQL语句,如何使用游标?
windows live spaces中怎样使用与设定多种语言
《永不言弃》中那首很帅的插曲《Go Break》,是韩语,还是日语还是什么别的国家语言唱的。谢了!!!
GO GO GO GO
那首很有激情的歌曲(歌词中有go go go……)是什么?
CS中怎样跟对友联系。例如COVER ME ,GO GO GO !!
初学OpenCV,有编译警告“/Qwd167”
请教用过opencv的高手
GO(火影)中、日语歌词