最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go調用opencv實現圖片矯正的代碼示例

 更新時間:2023年09月04日 09:59:42   作者:冒泡的肥皂  
這篇文章主要為大家詳細介紹了Go調用opencv實現圖片矯正的代碼示例,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下

圖片矯正實現流程

1.獲取角度

HoughLines獲取角度

HoughLines 返回的是角度,畫線坐標點需要計算。[0]像素單位距離 [1]角度;注意問題得到線條有干擾需要控制
HoughLinesPWithParams 返回的是坐標點直接畫線

FindContours獲取角度

FindContours 得到最大面積輪廓-》得到角度

2.旋轉圖片

temp2D := gocv.GetRotationMatrix2D(rect.Center, angle, 0.8)
gocv.WarpAffine(reactImg, &desc, temp2D, image.Pt(0, reactImg.Cols()/2))

代碼

windowA := gocv.NewWindow("watch")
	defer windowA.Close()
	root := getCurrentAbPathByCaller()
	img1 := gocv.IMRead(root+string(os.PathSeparator)+"tp.jfif", gocv.IMReadColor)
	img2 := gocv.NewMat()
	gocv.Canny(img1, &img2, 80, 160)
	//img3, _ := img2.ToImage()
	/*
			RetrievalExternal 最外側輪廓
		    RETR_LIST:返回所有輪廓線,不建立等級關系
			RETR_CCOMP :返回所有輪廓,包含兩個層級結構
			RETR_TREE :返回所有輪廓,建立完整的層次結構
	*/
	pointVecotr := gocv.FindContours(img2, gocv.RetrievalExternal, gocv.ChainApproxNone)
	gocv.DrawContours(&img1, pointVecotr, -1, color.RGBA{255, 0, 0, 0}, 1)
	maxindex := getMaxArea(pointVecotr)
	react := gocv.BoundingRect(pointVecotr.At(maxindex))
	reactImg := img1.Region(react)
	rect := gocv.MinAreaRect(pointVecotr.At(maxindex))
	points := rect.Points
	for i := 0; i < len(points); i++ {
		fmt.Println("%d %d", points[i].X, points[i].Y)
	}
	//
	line1 := math.Sqrt(math.Pow(float64(points[1].Y-points[0].Y), 2) + math.Pow(float64(points[1].X-points[0].X), 2))
	line2 := math.Sqrt(math.Pow(float64(points[3].Y-points[0].Y), 2) + math.Pow(float64(points[3].X-points[0].X), 2))
	//角度
	var angle = rect.Angle
	if line1 > line2 {
		angle = 90 + angle
	}
	desc := gocv.NewMat()
	/*
	GetAffineTransform 原圖像點-》轉換后圖像點
	*/
	temp2D := gocv.GetRotationMatrix2D(rect.Center, angle, 0.8)
	gocv.WarpAffine(reactImg, &desc, temp2D, image.Pt(0, reactImg.Cols()/2))
	//reactImg := img1.Region(react)
	//gocv.BoxPoints(gocv.MinAreaRect(pointVecotr.At(getMaxArea(pointVecotr))), &img2)
	windowA.IMShow(desc)
	windowA.WaitKey(0)

到此這篇關于Go調用opencv實現圖片矯正的代碼示例的文章就介紹到這了,更多相關Go opencv圖片矯正內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Golang中重復錯誤處理的優(yōu)化方法

    Golang中重復錯誤處理的優(yōu)化方法

    這篇文章主要給大家介紹了關于Golang中重復錯誤處理優(yōu)化的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Golang具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • golang高并發(fā)之本地緩存詳解

    golang高并發(fā)之本地緩存詳解

    這篇文章主要為大家詳細介紹了golang高并發(fā)中本地緩存的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-10-10
  • Go 語言中 20 個占位符的整理

    Go 語言中 20 個占位符的整理

    這篇文章主要介紹了Go 語言中 20 個占位符的整理,看完本篇文章講學會什么是占位符?哪些函數支持?如何使用占位符?不同的占位符的作用?配合占位符的幾個標記符號用法?
    2021-10-10
  • go語言面試之Goroutine詳解

    go語言面試之Goroutine詳解

    本文介紹了Go語言中Goroutine泄漏問題及其解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • go處理線程之間的交互示例代碼

    go處理線程之間的交互示例代碼

    Go語言以goroutine為核心實現并發(fā)編程,其中線程間交互主要通過Channels、WaitGroup、Mutex和Select實現,Channels提供goroutine間的數據傳遞,本文給大家介紹go處理線程之間的交互示例代碼,感興趣的朋友一起看看吧
    2024-10-10
  • golang編程開發(fā)使用sort排序示例詳解

    golang編程開發(fā)使用sort排序示例詳解

    這篇文章主要為大家介紹了go語言編程開發(fā)使用sort來排序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2021-11-11
  • Go語言切片(Slice)深度剖析與應用實戰(zhàn)

    Go語言切片(Slice)深度剖析與應用實戰(zhàn)

    在Go語言中,切片(Slice)是一種非常強大且靈活的數據結構,它基于數組但又提供了動態(tài)調整大小的能力,本文將結合實際案例,詳細介紹Go語言中切片的聲明、初始化、操作、擴容等用法,需要的朋友可以參考下
    2024-09-09
  • golang中可觸發(fā)panic的幾種情況匯總

    golang中可觸發(fā)panic的幾種情況匯總

    在Go語言中,panic是一種運行時錯誤處理機制,當程序遇到無法恢復的嚴重錯誤時會觸發(fā)panic,本文就來詳細的介紹一下golang中可觸發(fā)panic的幾種情況,感興趣的可以了解一下
    2025-11-11
  • 從前端轉go的一些感悟對比(附詳細代碼)

    從前端轉go的一些感悟對比(附詳細代碼)

    從前端開發(fā)轉向 Go(Golang)后端開發(fā),是一個非常可行也很實用的方向,特別是在做高性能微服務、分布式系統(tǒng)、云原生(如Kubernetes)等方面,這篇文章主要介紹了從前端轉go的一些感悟對比,需要的朋友可以參考下
    2026-04-04
  • Golang實現短網址/短鏈服務的開發(fā)筆記分享

    Golang實現短網址/短鏈服務的開發(fā)筆記分享

    這篇文章主要為大家詳細介紹了如何使用Golang實現短網址/短鏈服務,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-05-05

最新評論

互助| 苍溪县| 安达市| 湖南省| 永定县| 河池市| 泸定县| 太保市| 杭州市| 石屏县| 赤峰市| 兰西县| 石嘴山市| 吴忠市| 兴隆县| 涟源市| 洪湖市| 嘉义县| 谷城县| 济宁市| 隆化县| 砀山县| 乐都县| 福鼎市| 松潘县| 新乡县| 黄梅县| 梅河口市| 松潘县| 安吉县| 迁西县| 弥勒县| 荆州市| 双江| 忻城县| 林甸县| 宜宾县| 新邵县| 正宁县| 漳浦县| 秭归县|