博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 对图片做垂直投影
阅读量:6794 次
发布时间:2019-06-26

本文共 1136 字,大约阅读时间需要 3 分钟。

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 cv2import 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)

 


投影图

转载于:https://www.cnblogs.com/jyxbk/p/8548139.html

你可能感兴趣的文章
centos6/centos7安装ffmpeg
查看>>
JDK环境变量配置
查看>>
第十章:单元测试代码
查看>>
arm9的流水线,还是没理解~~~~
查看>>
代码控制回到桌面
查看>>
linux 下 rar 解压
查看>>
记录一些有用的chrome插件
查看>>
为Struts2 应用程序创建进度条(等待页面)
查看>>
怎样才能成为一个电玩程序员(转)
查看>>
我用php开发的webdav协议的软件phpdav
查看>>
SqlSessionTemplate探究
查看>>
ffmpeg python库 - ffmpy
查看>>
LetsEncrypt SSL 证书签发(Nginx)
查看>>
JMX使用报java.lang.ClassNotFoundException: org.apache.naming.java.javaURLContextFactory
查看>>
linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效...
查看>>
表格查询
查看>>
DateTimePicker
查看>>
MySQL 查询优化器(二)
查看>>
Linux ssh工具之SSH Secure Shell Client
查看>>
双系统重装win7/Xp后如何恢复ubuntu引导
查看>>