投影法多用于圖像的閾值分割。閑話不多說,現用Python實現。
上代碼。
import cv2
import numpy
img = cv2.imread('D:/0.jpg', cv2.COLOR_BGR2GRAY)
height, width = img.shape[:2]
#resized = cv2.resize(img, (3*width,3*height), interpolation=cv2.INTER_CUBIC)
python 爬蟲。#二值化
(_, thresh) = cv2.threshold(img, 150, 255, cv2.THRESH_BINARY)
#cv2.imshow('thresh', thresh)
#擴大黑色面積,使效果更明顯
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (10, 10))#形態學處理,定義矩形結構
closed = cv2.erode(thresh, None, iterations = 5)
python opencv,cv2.imshow('erode',closed)
height, width = closed.shape[:2]
v = [0]*width
z = [0]*height
a = 0
python作圖,#垂直投影
#統計并存儲每一列的黑點數
for x in range(0, width):
for y in range(0, height):
if closed[y,x][0] == 0:
python 類?a = a + 1
else :
continue
v[x] = a
a = 0
python函數?l = len(v)
#print l
#print width
#創建空白圖片,繪制垂直投影圖
emptyImage = numpy.zeros((height, width, 3), numpy.uint8)
python和java。for x in range(0,width):
for y in range(0, v[x]):
b = (255,255,255)
emptyImage[y,x] = b
cv2.imshow('chuizhi', emptyImage)
python3.7、#水平投影
#統計每一行的黑點數
a = 0
emptyImage1 = numpy.zeros((height, width, 3), numpy.uint8)
for y in range(0, height):
Python 圖像分割,for x in range(0, width):
if closed[y,x][0] == 0:
a = a + 1
else :
continue
python圖像拼接。z[y] = a
a = 0
l = len(z)
#print l
#print height
python應用案例。#繪制水平投影圖
for y in range(0,height):
for x in range(0, z[y]):
b = (255,255,255)
emptyImage1[y,x] = b
python反向切片、cv2.imshow('shuipin', emptyImage1)
cv2.waitKey(0)
原圖
垂直投影圖
水平投影圖
圖像分割python代碼、由這兩圖可以確定我們所需的分割點,從而可以進行下一步的文本分割。這將在下一篇博客中實現。
以上這篇Python實現投影法分割圖像示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持python博客。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态