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)

  1. #coding=utf-8
  2. import cv2.cv as cv
  3.  
  4. def binaryThreshold(Image, threshold):
  5. grey = cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U, 1)
  6. out = cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U, 1)
  7.  
  8. cv.CvtColor(Image,grey,cv.CV_BGR2GRAY)
  9. cv.Threshold(grey, out ,threshold , 255 ,cv.CV_THRESH_BINARY)
  10.  
  11. return out
  12.  
  13. if __name__ == '__main__':
  14.  
  15. #threshold = input("threshold=")
  16. cv.NamedWindow("camera",1)
  17. capture = cv.CaptureFromCAM(0)
  18.  
  19. while True:
  20. """ capture image from camera """
  21. img = cv.QueryFrame(capture)
  22.  
  23. """ convert color image to grey """
  24. #img = binaryThreshold(img, threshold)
  25.  
  26. """ Get the width and height of the image """
  27. (width, height) = cv.GetSize(img)
  28.  
  29. """ put text id and name in image """
  30. text_font = cv.InitFont(cv.CV_FONT_HERSHEY_DUPLEX, 2, 2)
  31. cv.PutText(img, "3100102592 menglixia", (50, height / 2), text_font, cv.RGB(255, 255, 0))
  32.  
  33. """ show each frame """
  34. cv.ShowImage("camera",img)
  35.  
  36. """ press esc to quit the script """
  37. if cv.WaitKey(10) == 27:
  38. break
  39.  
  40. del(capture)
  41. 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. POJ 2195:Going Home(最小费用最大流)

    http://poj.org/problem?id=2195 题意:有一个地图里面有N个人和N个家,每走一格的花费是1,问让这N个人分别到这N个家的最小花费是多少. 思路:通过这个题目学了最小费用最大 ...

  2. win7 64 旗舰版虚拟GPU-VMware下+vs2013安装caffe+matlab+python

    转发请说明来处 Win7配置caffe(无GPU) 配置环境: 必须:win7 64 + vs2013 Win7 64位旗舰版要升级到service spack(因为是在vs2013下,想安装vs20 ...

  3. [转]iOS学习之UINavigationController详解与使用(三)ToolBar

    转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...

  4. tomcat域名访问配置

    模拟线上环境,在本地以域名访问系统思路 1.首先在hosts文件将域名映射为本地IP 2.假如服务器80端口已被占用,可以用nginx转发,在nginx/vhosts/abc.com加入如下配置 se ...

  5. 利用angular与后台的交互

    记录的世界是强大的,不管天南海北还是五湖四海,如果利用angular js与后台的交互.angular js 在api上称为是http服务: 下面咱给一个简单的代码看看:简单的利用后台与前端的tab切 ...

  6. cas的http配置和rmi远程调用

    1.cas配置http请求(服务端) 1) 解压cas-server-3.4.4-release.zip将modules目录下的cas-server-webapp-3.4.4.war改名称为cas.w ...

  7. Linux 概念架构的理解

    摘要 Linux kernel 成功的两个原因: 架构设计支持大量的志愿开发者加入到开发过程中: 每个子系统,尤其是那些需要改进的,都支持很好的扩展性. 正是这两个原因使得 Linux kernel ...

  8. 安装 phoneGap

    npm config set registry http://registry.cnpmjs.org 使用最新版本PhoneGap ,决定使用官方提供的方法安装一次. 官方提供方法有些地方没有提到,因 ...

  9. Scrum Meeting 4-20151204

    任务安排 姓名 今日任务 明日任务 困难 董元财 学习上拉加入新的listview 无 胡亚坤 设计优化聊天页面 无 刘猛 请假(参加编译测试,提前准备) 无 马汉虎 请假(参加编译测试,提前准备) ...

  10. python collections defaultdict

    class_counts  = defaultdict(int) 一.关于defaultdict 在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collect ...