1. 用CaptureFromCAM函数对图像进行提取: capture = cv.CaptureFromCAM(0) 读取直接的视频文件只需将语句改变为: capture = cv.VideoCapture('videoname.avi')

  2. 对每一帧图像进行读取: while True:

    img = cv.QueryFrame(capture)

    #如果按下 esc 键则终止程序退出 if cv.WaitKey(10) == 27:

    break

  3. 在循环中对读取的每一帧图像进行二值化处理:

    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 图像作为函数返回
    值传入主函数。

  4. 在每一帧图像上覆盖“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对摄像头捕捉的镜头进行二值化并打上文字的更多相关文章

  1. Opencv实现图像的灰度处理,二值化,阀值选择

    前几天接触了图像的处理,发现用OPencv处理确实比較方便.毕竟是非常多东西都封装好的.可是要研究里面的东西,还是比較麻烦的,首先,你得知道图片处理的一些知识,比方腐蚀,膨胀,仿射,透射等,还有非常多 ...

  2. 《opencv学习》 之 OTSU算法实现二值化

    主要讲解OTSU算法实现图像二值化:    1.统计灰度级图像中每个像素值的个数. 2.计算第一步个数占整个图像的比例. 3.计算每个阈值[0-255]条件下,背景和前景所包含像素值总个数和总概率(就 ...

  3. OpenCV:图像的普通二值化

    首先我们来看看图像二值化的过程,opencv一共有好几种不同的二值化算法可以使用,一般来说图像的像素,亮度等条件如果超过了某个或者低于了某个阈值,就会恒等于某个值,可以用于某些物体轮廓的监测: 导包: ...

  4. Python+OpenCV图像处理(十)—— 图像二值化

    简介:图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程. 一.普通图像二值化 代码如下: import cv2 as cv import numpy ...

  5. opencv python 图像二值化/简单阈值化/大津阈值法

    pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ...

  6. python实现超大图像的二值化方法

    一,分块处理超大图像的二值化问题   (1) 全局阈值处理  (2) 局部阈值 二,空白区域过滤 三,先缩放进行二值化,然后还原大小 np.mean() 返回数组元素的平均值 np.std() 返回数 ...

  7. OpenCV图像的全局阈值二值化函数(OTSU)

    cv::threshold(GrayImg, Bw, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);//灰度图像二值化 CV_THRESH_OTSU是提取图像最 ...

  8. [iOS OpenCV的使用,灰度和二值化]

    看网上方法很多,但版本都不够新,我看了网上一些知识,总结了下,来个最新版Xcode6.1的. 最近主要想做iOS端的车牌识别,所以开始了解OpenCV.有兴趣的可以跟我交流下哈. 一.Opencv的使 ...

  9. OpenCV图像的二值化

    图像的二值化: 与边缘检测相比,轮廓检测有时能更好的反映图像的内容.而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出 ...

随机推荐

  1. [转]SOCKET通信中TCP、UDP数据包大小的确定

    TCP.UDP数据包大小的确定 UDP和TCP协议利用端口号实现多项应用同时发送和接收数据.数据通过源端口发送出去,通过目标端口接收.有的网络应用只能使用预留或注册的静态端口:而另外一些网络应用则可以 ...

  2. 一个注解方式webSocket demo

    前段时间在研究websocket.其中遇到了一些bug.这里跟大家分享这过程. 首先介绍一下websocket WebSocket是HTML5的一种新协议,实现了浏览器和服务器的双全工通信,能更好的节 ...

  3. CyclicBarrier和CountDownLatch的差别

    CyclicBarrier和CountDownLatch都用多个线程之间的同步,共同点:同时有N个线程在 CyclicBarrier(CountDownLatch) 等待上等待时,CyclicBarr ...

  4. centos6.6编译安装lnmp系列之PHP

    简介: 环境:虚拟机+centos6.6 在百度云盘里面我分享的安装软件包,包含LNMP系列软件. http://pan.baidu.com/s/1gdvnimv 1.安装前配置: 关闭selinux ...

  5. Python3基础 in 列表名 判断一个元素是否在列表中

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  6. java解析json与map,list相互之间的转换

    运行这个类需要加载jar包:ezmorph-1.0.6.jar.json-lib-2.4-jdk15.jar.jsoup-1.6.1.jar.commons-beanutils-1.8.0.jar.c ...

  7. parseInt的源码阅读

    parseInt的源码阅读 Integer.parseInt()这个方法的功能小巧又实用,实现起来困难不大,没有很复杂.这里就来看一下Java的源码是怎么写的吧,走一边大婶写过的代码,应该会有点收获吧 ...

  8. centos7 中libgdiplus的安装

    yum -y install libtool* git clone git://github.com/mono/libgdiplus.git cd libgdiplus ./autogen.sh -- ...

  9. 浏览器何时发送一个Option请求

    Http Options Method 简而言之,OPTIONS请求方法的主要用途有两个: 1.获取服务器支持的HTTP请求方法: 2.用来检查服务器的性能. CORS(跨域资源共享) CORS是一种 ...

  10. python中的@

    一.函数修饰符 '@' 用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰, 出现在函数定义的前一行,不允许和函数定义在同一行 一个修饰符就是一个函数,它将被修饰的函数作为参数,并返回修饰后的 ...