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_ ...
最新文章
- 亚洲诚信联合又拍云升级云端SSL证书服务
- catch后面的代码会执行吗_字节码层面理解try、catch、finally
- C指针原理(17)-C指针基础
- MyBatis 源码解读-typeHandlerElement()
- 并查集求欧拉回路/通路
- memcached安装和php扩展memcache安装
- springboot 接口404_资深架构带你学习Springboot集成普罗米修斯
- 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
- SQL注入攻击测试入实战(1)—成功渗透台湾某净化设备公司官网
- 游戏开发之测试篇3(C++)
- 删除本地oracle数据库,如何在WINDOWS 2000将ORALCE完全卸载-数据库专栏,ORACLE
- 【工赋开发者社区】产业互联网和工业互联网的区别
- 百度贴吧界面html程序代码,如何把自己的网址转换为百度贴吧网址?
- 平行交通:虚实互动的智能交通管理与控制
- ncsi信号测试软件,模拟电路与数字电路的转换
- 去除字符串中的特殊符号及表情
- 【Project Report】基于 QP 的优化选股策略
- HttpClient Get请求带参数
- 智子社区上线FCoin、IDCM即将扬帆起航
- 宠物领养管理系统|宠物寄养管理系统JAVA|JSP|SSM|Springboot|web计算机毕业设计源码