电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python實(shí)現(xiàn)opencv+scoket網(wǎng)絡(luò)實(shí)時(shí)圖傳

瀏覽:48日期:2022-08-01 17:18:01

本文實(shí)例為大家分享了python實(shí)現(xiàn)opencv+scoket網(wǎng)絡(luò)實(shí)時(shí)圖傳的具體代碼,供大家參考,具體內(nèi)容如下

服務(wù)器分析:

1. 先通過在服務(wù)器端利用OpenCV捕獲到視頻的每一幀圖片

2. 將這些圖片進(jìn)行壓縮成JPEG格式,這樣能減小圖片大小,便于傳輸

3. 按照提前協(xié)商好的分辨率和幀數(shù)進(jìn)行打包編碼傳輸

4. 利用服務(wù)器端打開端口8880,此時(shí)客戶端連接后,便可以在客戶端中捕獲到服務(wù)器端的視頻。

#服務(wù)端import socketimport threadingimport structimport timeimport cv2import numpyclass Carame_Accept_Object: def __init__(self,S_addr_port=('',8880)): self.resolution=(640,480) #分辨率 self.img_fps=15 #每秒傳輸多少幀數(shù) self.addr_port=S_addr_port self.Set_Socket(self.addr_port) #設(shè)置套接字 def Set_Socket(self,S_addr_port): self.server=socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #端口可復(fù)用 self.server.bind(S_addr_port) self.server.listen(5) #print('the process work in the port:%d' % S_addr_port[1])def check_option(object,client): #按格式解碼,確定幀數(shù)和分辨率 info=struct.unpack(’lhh’,client.recv(8)) if info[0]>888: object.img_fps=int(info[0])-888 #獲取幀數(shù) object.resolution=list(object.resolution) # 獲取分辨率 object.resolution[0]=info[1] object.resolution[1]=info[2] object.resolution = tuple(object.resolution) return 1 else: return 0def RT_Image(object,client,D_addr): if(check_option(object,client)==0): return camera=cv2.VideoCapture(0)#從攝像頭中獲取視頻 img_param=[int(cv2.IMWRITE_JPEG_QUALITY),object.img_fps] #設(shè)置傳送圖像格式、幀數(shù) while(1): time.sleep(0.1) #推遲線程運(yùn)行0.1s _,object.img=camera.read() #讀取視頻每一幀 object.img=cv2.resize(object.img,object.resolution) #按要求調(diào)整圖像大小(resolution必須為元組) _,img_encode=cv2.imencode(’.jpg’,object.img,img_param) #按格式生成圖片 img_code=numpy.array(img_encode) #轉(zhuǎn)換成矩陣 object.img_data=img_code.tostring() #生成相應(yīng)的字符串 try: #按照相應(yīng)的格式進(jìn)行打包發(fā)送圖片 client.send(struct.pack('lhh',len(object.img_data),object.resolution[0],object.resolution[1])+object.img_data) except: camera.release() #釋放資源 returnif __name__ == ’__main__’: camera=Carame_Accept_Object() while(1): client,D_addr=camera.server.accept() clientThread=threading.Thread(None,target=RT_Image,args=(camera,client,D_addr,)) clientThread.start()

客戶端分析:

1. 客戶端連接端口后,首先發(fā)送需要協(xié)商的分辨率和幀數(shù),以致能夠使傳輸“協(xié)議”一致

2. 客戶端使用線程,對(duì)圖片進(jìn)行收集

3. 對(duì)收到的每一張圖片進(jìn)行解碼,并利用OpenCV播放出來,即可實(shí)現(xiàn)C/S兩端實(shí)時(shí)視頻傳輸。

#客戶端import socketimport cv2import threadingimport structimport numpyclass Camera_Connect_Object: def __init__(self,D_addr_port=['',8880]): self.resolution=[640,480] self.addr_port=D_addr_port self.src=888+15 #雙方確定傳輸幀數(shù),(888)為校驗(yàn)值 self.interval=0 #圖片播放時(shí)間間隔 self.img_fps=15 #每秒傳輸多少幀數(shù) def Set_socket(self): self.client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.client.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) def Socket_Connect(self): self.Set_socket() self.client.connect(self.addr_port) print('IP is %s:%d' % (self.addr_port[0],self.addr_port[1])) def RT_Image(self): #按照格式打包發(fā)送幀數(shù)和分辨率 self.name=self.addr_port[0]+' Camera' self.client.send(struct.pack('lhh', self.src, self.resolution[0], self.resolution[1])) while(1): info=struct.unpack('lhh',self.client.recv(8)) buf_size=info[0] #獲取讀的圖片總長(zhǎng)度 if buf_size:try: self.buf=b''#代表bytes類型 temp_buf=self.buf while(buf_size): #讀取每一張圖片的長(zhǎng)度 temp_buf=self.client.recv(buf_size) buf_size-=len(temp_buf) self.buf+=temp_buf #獲取圖片 data = numpy.fromstring(self.buf, dtype=’uint8’) #按uint8轉(zhuǎn)換為圖像矩陣 self.image = cv2.imdecode(data, 1) #圖像解碼 cv2.imshow(self.name, self.image) #展示圖片except: pass;finally: if(cv2.waitKey(10)==27): #每10ms刷新一次圖片,按‘ESC’(27)退出 self.client.close() cv2.destroyAllWindows() break def Get_Data(self,interval): showThread=threading.Thread(target=self.RT_Image) showThread.start()if __name__ == ’__main__’: camera=Camera_Connect_Object() camera.addr_port[0]='服務(wù)端的ip' camera.addr_port=tuple(camera.addr_port) camera.Socket_Connect() camera.Get_Data(camera.interval

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂| 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 微学堂-电动能源汽车评测_电动车性能分享网| 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 全球化工设备网—化工设备,化工机械,制药设备,环保设备的专业网络市场。 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 绿萝净除甲醛|深圳除甲醛公司|测甲醛怎么收费|培训机构|电影院|办公室|车内|室内除甲醛案例|原理|方法|价格立马咨询 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 安全,主动,被动,柔性,山体滑坡,sns,钢丝绳,边坡,防护网,护栏网,围栏,栏杆,栅栏,厂家 - 护栏网防护网生产厂家 |