使用python-openCV对摄像头捕捉的镜头进行二值化并打上文字
用CaptureFromCAM函数对图像进行提取: capture = cv.CaptureFromCAM(0) 读取直接的视频文件只需将语句改变为: capture = cv.VideoCapture('videoname.avi')
对每一帧图像进行读取: while True:
img = cv.QueryFrame(capture)
#如果按下 esc 键则终止程序退出 if cv.WaitKey(10) == 27:
break
在循环中对读取的每一帧图像进行二值化处理:
def binaryThreshold(Image, threshold):
grey = cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U, 1)
out = cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U, 1)cv.CvtColor(Image,grey,cv.CV_BGR2GRAY)
cv.Threshold(grey, out , threshold , 255 ,cv.CV_THRESH_BINARY)return out
其中,CreateImage 函数表示按原帧大小创建 256 值 1 通道的灰度图像,
CvtColor 函数将传入的图像从 RGB 图像转换成灰度图,写入 grey 图像。
Threshold函数按程序开始时threshold = input("threshold=")语句获取的用
户输入的的阈值将图像进行二值化写入 out 图像。将 out 图像作为函数返回
值传入主函数。在每一帧图像上覆盖“3100102592 menglixia”的文字:
(width, height) = cv.GetSize(img)
text_font = cv.InitFont(cv.CV_FONT_HERSHEY_DUPLEX, 2, 2)
cv.PutText(img, "3100102592 menglixia", (50, height / 2), text_font, cv.RGB(255, 0, 0))
获取图像高度和宽度,并初始化文字字体,在 1/2 高度处写入“3100102592 menglixia”的字符串,以颜色红色(在二值化后的图像中显示为 黑色)
5. 显示每一帧图像:
cv.ShowImage("camera",img)
#coding=utf-8
import cv2.cv as cv def binaryThreshold(Image, threshold):
grey = cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U, 1)
out = cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U, 1) cv.CvtColor(Image,grey,cv.CV_BGR2GRAY)
cv.Threshold(grey, out ,threshold , 255 ,cv.CV_THRESH_BINARY) return out if __name__ == '__main__': #threshold = input("threshold=")
cv.NamedWindow("camera",1)
capture = cv.CaptureFromCAM(0) while True:
""" capture image from camera """
img = cv.QueryFrame(capture) """ convert color image to grey """
#img = binaryThreshold(img, threshold) """ Get the width and height of the image """
(width, height) = cv.GetSize(img) """ put text id and name in image """
text_font = cv.InitFont(cv.CV_FONT_HERSHEY_DUPLEX, 2, 2)
cv.PutText(img, "3100102592 menglixia", (50, height / 2), text_font, cv.RGB(255, 255, 0)) """ show each frame """
cv.ShowImage("camera",img) """ press esc to quit the script """
if cv.WaitKey(10) == 27:
break del(capture)
cv.DestroyWindow("camera")
使用python-openCV对摄像头捕捉的镜头进行二值化并打上文字的更多相关文章
- Opencv实现图像的灰度处理,二值化,阀值选择
前几天接触了图像的处理,发现用OPencv处理确实比較方便.毕竟是非常多东西都封装好的.可是要研究里面的东西,还是比較麻烦的,首先,你得知道图片处理的一些知识,比方腐蚀,膨胀,仿射,透射等,还有非常多 ...
- 《opencv学习》 之 OTSU算法实现二值化
主要讲解OTSU算法实现图像二值化: 1.统计灰度级图像中每个像素值的个数. 2.计算第一步个数占整个图像的比例. 3.计算每个阈值[0-255]条件下,背景和前景所包含像素值总个数和总概率(就 ...
- OpenCV:图像的普通二值化
首先我们来看看图像二值化的过程,opencv一共有好几种不同的二值化算法可以使用,一般来说图像的像素,亮度等条件如果超过了某个或者低于了某个阈值,就会恒等于某个值,可以用于某些物体轮廓的监测: 导包: ...
- Python+OpenCV图像处理(十)—— 图像二值化
简介:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程. 一.普通图像二值化 代码如下: import cv2 as cv import numpy ...
- opencv python 图像二值化/简单阈值化/大津阈值法
pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ...
- python实现超大图像的二值化方法
一,分块处理超大图像的二值化问题 (1) 全局阈值处理 (2) 局部阈值 二,空白区域过滤 三,先缩放进行二值化,然后还原大小 np.mean() 返回数组元素的平均值 np.std() 返回数 ...
- OpenCV图像的全局阈值二值化函数(OTSU)
cv::threshold(GrayImg, Bw, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);//灰度图像二值化 CV_THRESH_OTSU是提取图像最 ...
- [iOS OpenCV的使用,灰度和二值化]
看网上方法很多,但版本都不够新,我看了网上一些知识,总结了下,来个最新版Xcode6.1的. 最近主要想做iOS端的车牌识别,所以开始了解OpenCV.有兴趣的可以跟我交流下哈. 一.Opencv的使 ...
- OpenCV图像的二值化
图像的二值化: 与边缘检测相比,轮廓检测有时能更好的反映图像的内容.而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出 ...
随机推荐
- HDU 5686:2016"百度之星" - 资格赛 Problem B
原文链接:https://www.dreamwings.cn/hdu5686/2645.html Problem B Time Limit: 2000/1000 MS (Java/Others) ...
- Unity3D Function Not Supported - Unity动画事件提示不支持的解决方法
把脚本放在所有组件的最上面 然后刷新一下就好了 如果还是显示不支持就是参数问题.比如不支持bool参数,但支持string参数. 所以最好用无参数的
- Less 使用指南
简而言之 Less是为了简化css http://less.bootcss.com/features/ 以上链接是Less中文网站,里面有对Less的详细介绍. 一下写在使用中遇到的问题: 1.下载L ...
- javascript 常用实用函数。。。。。。
javascript 正则表达式 1.获取屏幕大小尺寸 /* 获取屏幕大小尺寸 */ var getScreen = function () { var screen = { width: 0, he ...
- Animating graphic objects in Windows Forms.
原文: Animating graphic objects in Windows Forms. http://bobpowell.net/animation.aspx 文件下载备份:http://fi ...
- R----plotly包介绍学习
plotly包:让ggplot2的静态图片变得可交互 Plotly 是个交互式可视化的第三方库,官网提供了Python,R,Matlab,JavaScript,Excel的接口,因此我们可以很方便地在 ...
- 17-underscore库(下)
一.函数介绍 1.bind 结构 _.bind(function, object, *arguments) 说明 一个对象中所有的成员函数的this都指向这个对象 举例 _.bind(function ...
- vs2010 vc++ 统一修改所有工程的目录配置
vs2005和vs2008中都是通过 工具-选项-项目和解决方案-VC++目录,设置 头文件include .库文件lib.可执行文件dll的路径,以便在引用dll动态链接库文件时,可以查找到该文件的 ...
- JavaScript严格模式详解
转载自阮一峰的博客 Javascript 严格模式详解 作者: 阮一峰 一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict m ...
- nginx location配置
nginx location配置 location在nginx中起着重要作用,对nginx接收到的请求字符串进行处理,如地址定向.数据缓存.应答控制.代理转发等location语法location ...