写点什么

Python“鉴黄”小程序,我离职后面试收割小米等大厂 offer

作者:程序媛可鸥
  • 2022 年 3 月 17 日
  • 本文字数:1617 字

    阅读完需:约 5 分钟

import numpy as np


import collections


import time


下面是读取摄像头:


camera = cv2.VideoCapture(0)


做一些开始前的准备,包括循环次数,摄像头内容读入,保存上一帧的图片作为对比作差找到动态物体,然后定义框架的长和宽。


firstframe = None


a=0


ret0,frame0 = camera.read()


cv2.imwrite("1.jpg",frame0)


x, y, w, h = 10,10,100,100


下面是定义颜色的部分代码,比如定义的黑色,可以参照 hsv 表进行拓展,如图所示



然后可以知道黑色的最低值为 0,0,0,最大值为 180,255,46 然后建立数组存储颜色数据,通过字典达到映射效果。

处理图片

def get_color(frame):


print('go in get_color')


hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)


maxsum = -100


color = None


color_dict = getColorList()


for d in color_dict:


mask = cv2.inRange(frame, color_dict[d][0], color_dict[d][1])


cv2.imwrite(d + '.jpg', mask)


binary = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY)[1]


binary = cv2.dilate(binary, None, iterations=2)


img, cnts, hiera = cv2.findContours(binary.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)


sum = 0


for c in cnts:


sum += cv2.contourArea(c)


if sum > maxsum:


maxsum = sum


color = d


return color


图像处理




紧接着是图像处理,其中包括转为灰度图,读取颜色字典,然后腐化膨胀操作。

处理图片

def get_color(frame):


print('go in get_color')


hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)


maxsum = -100


color = None


color_dict = getColorList()


for d in color_dict:


mask = cv2.inRange(frame, color_dict[d][0], color_dict[d][1])


cv2.imwrite(d + '.jpg', mask)


binary = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY)[1]


binary = cv2.dilate(binary, None, iterations=2)


img, cnts, hiera = cv2.findContours(binary.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)


sum = 0


for c in cnts:


sum += cv2.contourArea(c)


if sum > maxsum:


maxsum = sum


color = d


return color


图片相减的办法




然后是图片相减找到动态物体的代码,每循环 5 次保存一次图片,时间是很短的不用担心。然后通过 absdiff 函数对图片像素值作差找到动态物体,接着讲像素值相减非零的部分用矩形框圈出来。


while True:


ret, frame = camera.read()


if not ret:


break


gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)


gray = cv2.GaussianBlur(gray, (21, 21), 0)


a=a+1


最后

Python 崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS 等更加高级的领域。Python 可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python 可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

??Python 所有方向的学习路线??

Python 所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。


??Python 必备开发工具??

工欲善其事必先利其器。学习 Python 常用的开发软件都在这里了,给大家节省了很多时间。


??Python 全套学习视频??

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。


??实战案例??

学 python 就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。


因此在学习 python 的过程中一定要记得多动手写代码,教程只需要看一两遍即可。


??大厂面试真题??

我们学习 Python 必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



用户头像

Python编程资料加Q群免费领取:419829237 2022.03.14 加入

还未添加个人简介

评论

发布
暂无评论
Python“鉴黄”小程序,我离职后面试收割小米等大厂offer_Python_程序媛可鸥_InfoQ写作平台