Python 对图片做垂直投影
Python 对图片做垂直投影
本文利用opencv对图片进行垂直投影,做出垂直投影图,大体思路:打开图片,灰度化,二值化,按列进行统计,新建一个大小和原图一样的图片,按列进行填充:
- cv2.cv.Get2D(cv2.cv.fromarray(img), y, x) 获取物理坐标为(y,x)处的灰度值
- cv2.cv.Set2D(cv2.cv.fromarray(img), y, x,(255, 255, 255)) 设置某一位置处rgb值
实现
例如:
# -*-coding:utf-8-*-
import cv2
import numpy as np# 灰度化读取图片
image = cv2.imread('10.bmp', 0)
# cv2.imshow('aa',image)
# cv2.waitKey(0)
# 将图片二值化
retval, img = cv2.threshold(image, 170, 255, cv2.THRESH_BINARY_INV)
# cv2.imshow('aa',img)
# cv2.waitKey(0)
# 创建一个空白图片(img.shape[0]为height,img.shape[1]为width)
paintx = np.zeros(img.shape, np.uint8)# 将新图像数组中的所有通道元素的值都设置为0
cv2.cv.Zero(cv2.cv.fromarray(paintx))# 创建width长度都为0的数组
w = [0] * image.shape[1]
print w
# 对每一行计算投影值
for x in range(image.shape[1]):for y in range(image.shape[0]):t = cv2.cv.Get2D(cv2.cv.fromarray(img), y, x)if t[0]== 0:w[x] += 1# 绘制垂直投影图
for x in range(image.shape[1]):for y in range(w[x]):# 把为0的像素变成白cv2.cv.Set2D(cv2.cv.fromarray(paintx), y, x,(255, 255, 255))# 显示图片
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',paintx)
cv2.imwrite('image.jpg',paintx)
cv2.waitKey(0)
Python 对图片做垂直投影相关推荐
- 用python给女朋友惊喜_如和用python给女朋友做个专属她的软件
如和用python给女朋友做个专属她的软件 在学习python的路上如果觉得枯燥就可以想我一样做一些有趣的事情就不会无聊了 python是一门及其有趣的语言. 人们都喜欢记住一些重要的日子,比如说跟女 ...
- python垂直输出_Python实现图像的垂直投影示例
Python + OpenCV 直接上代码 import cv2 import numpy as np from matplotlib import pyplot as plt from PIL im ...
- python字符分割垂直投影法_Python实现投影法分割图像示例(一)
Python实现投影法分割图像示例(一) 发布时间:2020-01-26 21:14 来源:互联网 当前栏目:web技术类 投影法多用于图像的阈值分割.闲话不多说,现用Python实现. 上代码. i ...
- 用python的tkinter做游戏(八)—— 实现图片在tkinter中自适应大小(自动匹配窗口)
用python的tkinter做游戏 系列: 用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 用python自带的tkinter做游戏(二)-- 俄罗斯方块 篇 用python自带的t ...
- OpenCV 实现图片的水平投影与垂直投影,并进行行分割
前言:对于印刷体图片来说,进行水平投影和垂直投影可以很快的进行分割,本文在OpenCV中如何进行水平投影和垂直投影通过代码进行说明. 水平投影:二维图像在y轴上的投影 垂直投影:二维图像在x轴上的投影 ...
- python-对水平和垂直投影图做曲线拟合
最近对水平和垂直投影图做了曲线拟合,具体步骤是将原图输入然后进行灰度化,直方图均衡化,二值化以后对像素进行按行相加或者按列相加,得到一维数组,再将得到的数组下标以及数组里的数值作为x,y坐标进行多项式 ...
- 文本分割之垂直投影法基于OpenCV(python)的实现
在我的上一篇博客中讲述了水平投影法取出文本行图像的实现,在这里将用垂直投影法对文本行的每个字符进行分割.下图是用水平投影法切割的文本行: 文本分割的原理如下,先用水平投影取出单一文本行,接着使用垂直投 ...
- python读取视频流做人脸识别_python实现图片,视频人脸识别(opencv版)
图片人脸识别 import cv2 filepath = "img/xingye-1.png" img = cv2.imread(filepath) # 读取图片 gray = c ...
- python实现图像分割_Python实现投影法分割图像示例(一)
投影法多用于图像的阈值分割.闲话不多说,现用Python实现. 上代码. import cv2 import numpy img = cv2.imread('D:/0.jpg', cv2.COLOR_ ...
最新文章
- iOS事件处理,看我就够了~
- 1925亿美元,中国仍是世界最大芯片市场!2022全球半导体行业报告出炉
- 任正非最新讲话:华为专家队伍怎么建?
- 比较器 Comparable 与compartor 的区别及理解
- 帧、场编码的个人理解
- Apache的流处理技术概述
- 数学基础加强2---概率论与贝叶斯先验
- 周志华机器学习西瓜书速记第二章绪论模型评估与选择(一)
- linux查看db2表空间大小,DB2查看表空间大小及使用情况
- Access、Trunk、Hybrid三种端口收发规则以及tagged端口和untagged端口的区别
- 土地利用转移矩阵步骤
- 【Duet display】Mac分屏神器
- 简单、免费但强大的高效率截图工具——Snipaste(下载安装+常用快捷键教学)
- 利用EasyPub为Kindle制作mobi格式书籍
- react 首页加载loading
- DDD.实践思考随笔,看书不在所而在于自己有多少思考
- c++ json::value
- 读论文——A Joint Model for Aspect-Category Sentiment Analysis with Shared Sentiment Prediction Layer
- 全景制作后期拼接全景图怎么做?
- PDF文件如何编辑?这两种方法是我一直在用的