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

opencv+python實(shí)現(xiàn)圖像矯正

 更新時(shí)間:2022年08月01日 09:44:41   作者:椰樹(shù)林YSL  
這篇文章主要為大家詳細(xì)介紹了opencv+python實(shí)現(xiàn)圖像矯正,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了opencv+python實(shí)現(xiàn)圖像矯正的具體代碼,供大家參考,具體內(nèi)容如下

需求:將斜著拍攝的文本圖像進(jìn)行矯正

python代碼

import numpy as np
import cv2 as cv


def shape_correction(img):
? ? (height, width) = img.shape[:2]
? ? print(img.shape)

? ? img_gau = cv.GaussianBlur(img, (5, 5), 0)
? ? canny = cv.Canny(img_gau, 60, 200)
? ? # cv.imshow("g-canny", canny)
? ??
? ? kernel = cv.getStructuringElement(cv.MORPH_CROSS, (4,3))?
? ??
? ? dilated = cv.dilate(canny, kernel, iterations=8) ?
? ? # cv.imshow('img_dilated', dilated)

? ? # 尋找輪廓
? ? contours, hierarchy = cv.findContours(dilated, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE)
? ? # print(len(contours), hierarchy, sep='\n')

? ? # 找到最外層面積最大的輪廓

? ? area = 0
? ? # print("area:{}".format(area))

? ? index = 0
? ? for i in range(len(contours)):
? ? ? ? x, y, w, h = cv.boundingRect(contours[i])
? ? ? ? # 排除非文本區(qū)域
? ? ? ? if w < 35 and h < 35:
? ? ? ? ? ? continue
? ? ? ? # 防止矩形區(qū)域過(guò)大不精準(zhǔn) ? ?
? ? ? ? if h > 0.99 * height or w > 0.99 * width:
? ? ? ? ? ? continue
? ? ? ? # draw rectangle around contour on original image
? ? ? ? # cv.rectangle(img, (x, y), (x + w, y + h), (255, 0, 255), 2)
? ? ? ? tmpArea = w * h
? ? ? ? if tmpArea >= area:
? ? ? ? ? ? area = tmpArea
? ? ? ? ? ? index = i

? ? # 得到最小外接矩形的(中心(x,y), (寬,高), 旋轉(zhuǎn)角度)
? ? rect = cv.minAreaRect(contours[index])
? ? # 畫出矩形框
? ? # box = cv.boxPoints(rect)
? ? # box = np.int0(box)
? ? # cv.drawContours(img, [box], 0, (0, 0, 255), 2)

? ? # cv.imshow('img', img)
? ? print("rect:{}".format(rect))
? ? angle = rect[-1]
? ? # print(angle)

? ? # 角度大于85度或小于5度不矯正
? ? if angle > 85 or angle < 5:
? ? ? ? angle = 0
? ? elif angle < 45:
? ? ? ? angle = angle - 0
? ? else:
? ? ? ? angle = angle - 90

? ? M = cv.getRotationMatrix2D(rect[0], angle, 1)
? ? rotated = cv.warpAffine(img, M, (width, height), flags=cv.INTER_CUBIC, borderValue=(255, 255, 255))
? ??
? ? cv.imshow('Rotated', rotated)
? ? return rotated


src = cv.imread('/res-normal.png', 0)
rotated = shape_correction(src)
cv.waitKey(0)

算法流程

算法核心思想:

獲取圖像中的文本區(qū)域矩形輪廓,找到其中面積最大的,對(duì)其進(jìn)行最小外接矩形計(jì)算,得到最小外接矩形的旋轉(zhuǎn)角度,再根據(jù)旋轉(zhuǎn)角度進(jìn)行仿射變換。

測(cè)試效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?命令行解析工具?argparse基本用法

    Python?命令行解析工具?argparse基本用法

    在工作中,我們經(jīng)常需要從命令行當(dāng)中解析出指定的參數(shù),而?Python?也提供了相應(yīng)的標(biāo)準(zhǔn)庫(kù)來(lái)做這件事情,比如?sys,?optparse,?getopt,?argparse,這里面功能最強(qiáng)大的莫過(guò)于?argparse,下面就來(lái)看看它用法,需要的朋友可以參考下
    2022-12-12
  • Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法

    Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法,涉及Python針對(duì)mysql數(shù)據(jù)庫(kù)的連接、查詢、csv格式數(shù)據(jù)文件的生成等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • python編寫一個(gè)會(huì)算賬的腳本的示例代碼

    python編寫一個(gè)會(huì)算賬的腳本的示例代碼

    這篇文章主要介紹了python編寫一個(gè)會(huì)算賬的腳本,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • pycharm中多進(jìn)程踩坑記錄--Python

    pycharm中多進(jìn)程踩坑記錄--Python

    這篇文章主要介紹了pycharm中多進(jìn)程踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • python selenium 查找隱藏元素 自動(dòng)播放視頻功能

    python selenium 查找隱藏元素 自動(dòng)播放視頻功能

    這篇文章主要介紹了python selenium 查找隱藏元素 自動(dòng)播放視頻功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式

    使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式

    這篇文章主要介紹了使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式,住喲有兩種方式,具體內(nèi)容,需要的小伙伴可以參考下面文章內(nèi)容,希望對(duì)你有所幫助
    2022-03-03
  • Django集成MongoDB實(shí)現(xiàn)過(guò)程解析

    Django集成MongoDB實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Django集成MongoDB實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • python3對(duì)接mysql數(shù)據(jù)庫(kù)實(shí)例詳解

    python3對(duì)接mysql數(shù)據(jù)庫(kù)實(shí)例詳解

    這篇文章主要介紹了python3對(duì)接mysql數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Windows下Anaconda和PyCharm的安裝與使用詳解

    Windows下Anaconda和PyCharm的安裝與使用詳解

    這篇文章主要介紹了Windows下Anaconda和PyCharm的安裝與使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python求解水仙花數(shù)的方法

    python求解水仙花數(shù)的方法

    這篇文章主要介紹了python求解水仙花數(shù)的方法,較為詳細(xì)的分析了水仙花數(shù)問(wèn)題的概念與對(duì)應(yīng)解決方法的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

资兴市| 佛山市| 巫山县| 翁牛特旗| 洞口县| 余庆县| 苏尼特右旗| 上虞市| 漯河市| 麻阳| 澳门| 枣阳市| 阿拉善右旗| 沙田区| 怀化市| 石门县| 衢州市| 合阳县| 夹江县| 江西省| 富裕县| 文成县| 大理市| 青阳县| 垫江县| 宁晋县| 东城区| 肇州县| 盐亭县| 布尔津县| 锡林郭勒盟| 桂阳县| 巧家县| 诸城市| 汤原县| 新丰县| 临武县| 金阳县| 长海县| 桦川县| 蚌埠市|