基于 Python & OpenCV 的视频解包

偶尔改个视频或者想从视频中提取点图片什么的但是发现网上很难找到把视频逐帧解包的软件于是只好自己写一个喽其实本身这个程序的流程并不难,读取 - 输出 就可以了代码如下(部分引用自http://blog.csdn.net/gjy095/article/details/9205207) ```import sys import cv2 if len(sys.argv) < 2 or len(sys.argv) > 3: print(‘Usage: python ‘ + sys.argv[0] + ‘ file [skip]‘) sys.exit() capture = cv2.VideoCapture(sys.argv[1]) i = 0 if len(sys.argv) == 3 and sys.argv[2]: i = int(sys.argv[2]) capture.set(cv2.CAP_PROP_POS_FRAMES, i) if capture.isOpened(): while True: ret, prev = capture.read() if ret==True: i += 1 cv2.imwrite(‘out/’+str(i)+‘.png’, prev) # 这里会在显示的图片左上角加上编号 cv2.putText(prev, 'Frame: '+str(i), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1,(255,255,0), 1) cv2.imshow('video', prev) else: break if cv2.

阅读全文

对 niconico 的路人转黑

事情要从一个多月前说起(7月下旬)

@rk 想录 niconico 生放送上的 Charlotte 广播剧,所以办了个白金,540 JPY/mo
因为 niconico 的会员要用 Paypal 付款,所以用了我的账号,绑上了他的虚拟信用卡

阅读全文

最近网络不太稳定

之前访问 linode-jp 的 IP 段都是第一次访问正常,之后一段时间都是连接超时,然后再循环。 已经持续了一天了,直到现在才有所改善,不知道是暂时的还是之后一直会恢复。 目前处于观察状态,如果再出现类似情况的话去找 ISP 让他们解决(不过估计他们也不会做什么的吧)

阅读全文

又有一个多月的时间了呢 = = 刚想起来还欠着一篇文章没写,趁着没忘干净赶紧补上 先上样卡(A4,扫描图片为600dpi) 整体并不是很复杂,但一口气手工切40+张也是够累,所以想办法自己写了个识别程序 opencv是个功能丰富的开源库,这里主要用到查找边界的功能。 opencv的原生api支持c、java、python,python 比较易于调试,所以选择了它。这里使用 python 2.7。 对于有编程经验的人来讲,python 比较容易入门,基本上摸索十分钟左右就可以了(靠谱的IDE也是重要条件嗯) 首先下载 opencv 和 numpy,numpy 装好可以直接用,opencv 要到 build/python 下找到相应的文件复制到项目目录 P.S. 如果运行出错的话,要注意 python、numpy、opency 的平台版本需保持一致 因为图片整体结构比较简单,而且定位点都是矩形,所以用了比较简单的方法,把边界都抽象为矩形处理。 大概流程是这样(findPoint.py 代码后附): 引入依赖 import findPoint import cv2 图片修正(根据四角的定位点修正图片倾斜) img, rects = findPoint.process_img(findPoint.read_file(dir+source)) fixed = findPoint.fix_image(img, rects) 查找四角定位点 img, rects = findPoint.process_img(fixed) height,width,ch = img.shape points = findPoint.find_corner_points(width, height, rects) 移除无关的矩形 rects = findPoint.remove_rects(rects, points[0].x_max + 10, points[3].x_min - 10, points[0].y_max + 10, points[3].

阅读全文