使用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,这样将使整个图像呈现出 ...
随机推荐
- smarty中增加类似foreach的功能自动加载数据方法
第一步:在Smarty_Compiler.class.php的_compile_tag函数中增加: 复制代码 代码如下: //加载数据的开始标签case 'load': $this->_push ...
- [SDN] mininet walkthrough
本次学习使用的是mininet的VM-image,所以安装过程就先忽略掉了,主要学习使用方法. 同时完成了在虚拟机上配置minient和Wireshark, 可以直接在虚拟机上操作. 1. Every ...
- linux mysql导入导出
linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 ...
- hadoop2.0初识1.3
1.配置分布式hadoop 1.1 准备三台测试机(虚拟机就可以) 1.1.1 将life-hadoop虚拟机克隆2个分别为life-hadoop02和life-hadoop03 1.1.2 查看ip ...
- Json不知道key值情况下获取第一个键值对
JObject jsonData = new JObject(); jsonData.Add("1", "1"); jsonData.Add("2&q ...
- 深入浅出设计模式——抽象工厂模式(Abstract Factory)
模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法.但是有时候我们需要一个工厂可 ...
- javaSE之Object及hashcode等相关知识
object: package javaBasic; public class TestObject { public static void main(String[] args) { // TOD ...
- GPRS模块上电后复位会导致开机函数不正常的问题原因及解决方法
之前使用的开机函数 void Gprs_modem_start_up(){GPIO_SetBits(GPIOB,GPIO_Pin_0); //RESET 脚要置成高电平,防止重启do{ GPIO_Se ...
- Xshell 登录 AWS CentOS 出现“所选择的用户秘钥未在远程主机上注册“,最终解决办法!
其实就是 登录用户名错了,是 root,不是centos 也不是 ec2-user ! Xshell 连接配置界面如下 最重要是 登录授权配置 最后,登录成功! 就这么简单
- 20145224&20145238《信息安全系统设计基础》实验五
20145224陈颢文20145238荆玉茗 <信息安全系统设计基础>第五次实验报告 课程:信息安全系统设计基础 班级: 1452 姓名:荆玉茗 陈颢文 学号:20145238 20145 ...