PythonOpenCV基本操作方法详解python

cv2.IMREAD_COLOR:读入彩色图像,默认参数,Opencv读取彩色图像为BGR模式!!!注意

cv2.IMREAD_GRAYSCALE:读入灰度图像。

cv2.imshow(窗口名,图像文件)显示图像

可以创建多个窗口

cv2.waitKey()键盘绑定函数

函数等待特定的几毫秒,看是否由键盘输入。

cv2.namedWindow(窗口名,属性)创建一个窗口

属性:指定窗口大小模式

cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小

cv2.WINDOW_NORMAL:窗口大小可调整

cv2.destoryAllWindows(窗口名)删除任何建立的窗口

代码实例:

importcv2img=cv2.imread('test.py',cv2.IMREAD_COLOR)cv2.namedWindow('image',cv2.WINDOW_NORMAL)cv2.imshow('image',img)cv2.waitKey(0)cv2.destoryAllWindows()cv2.imwrite(保存图像名,需保存图像)保存图像

importcv2img=cv2.imread('test.png',0)cv2.imshow('image',img)k=cv2.waitKey(0)ifk==27:#等待ESC键cv2.destoryAllWindows()elifk==ord('s')#等待's'键来保存和退出cv2.imwrite('messigray.png',img)cv2.destoryAllWindows()对于图像的一些操作

0x01.获取图片属性

importcv2img=img.imread('test.png')printimg.shape#(768,1024,3)printimg.size#2359296768*1024*3printimg.dtype#uint80x02.输出文本

在处理图片时,将一些信息直接以文字的形式输出在图片上

cv2.putText(图片名,文字,坐标,文字颜色)

0x03.缩放图片

实现缩放图片并保存,在使用OpenCV时常用的操作。cv2.resize()支持多种插值算法,默认使用cv2.INTER_LINEAR,缩小最适合使用:cv2.INTER_AREA,放大最适合使用:cv2.INTER_CUBIC或cv2.INTER_LINEAR。

res=cv2.resize(image,(2*width,2*height),interpolation=cv2.INTER_CUBIC)或者:

res=cv2.resize(image,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)此处None本应该是输出图像的尺寸,因为后边设置了缩放因子

0x04.图像平移

cv2.warpAffine(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])平移就是将图像换个位置,如果要沿(x,y)方向移动,移动距离为(tx,ty),则需要构建偏移矩阵M。

例如平移图片(100,50)

importcv2img=cv2.imread('test.png',1)rows,cols,channel=img.shapeM=np.float32([[1,0,100],[0,1,50]])dst=cv2.warpAffine(img,M,(cols,rows))cv2.imshow('img',dst)cv2.waitKey(0)cv2.destoryALLWindows()其中(cols,rows)代表输出图像的大小,M为变换矩阵,100代表x的偏移量,50代表y的偏移量,单位为像素。

0x05.图像旋转

OpenCV中首先需要构造一个旋转矩阵,通过cv2.getRotationMatrix2D获得。

importcv2img=cv2.imread('test.png',0)rows,cols=img.shape#第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子M=cv2.getRotationMatrix2D((cols/2,rows/2),45,0.6)#第三个参数为图像的尺寸中心dst=cv2.warpAffine(img,M,(2*cols,2*rows))cv2.imshow('img',dst)cv2.waitKey(0)cv2.destoryALLWindows()0x06.仿射变换

在仿射变换中,原图中所有的平行线在结果图像中同样平行。为了创建偏移矩阵,需要在原图像中找到三个点以及它们在输出图像中的位置。然后OpenCV中提供了cv2.getAffineTransform创建2*3的矩阵,最后将矩阵传给函数cv2.warpAffine。

importcv2importmatplotlib.pyplotaspltimportnumpyasnpimg=cv2.imread('test.png')rows,cols,ch=img.shapepts1=np.float32([[50,50],[200,50],[50,200]])pts2=np.float32([[10,100],[200,50],[100,250]])M=cv2.getAffineTransform(pts1,pts2)dst=cv2.warpAffine(img,M,(cols,rows))plt.subplot(121),plt.imshow(img),plt.title('Input')plt.subplot(122),plt.imshow(dst),plt.title('Output')plt.show()

0x07.透视变换

视角变换,需要一个3*3变换矩阵。在变换前后要保证直线还是直线。构建此矩阵需要在输入图像中找寻4个点,以及在输出图像中对应的位置。这四个点中的任意三个点不能共线。变换矩阵OpenCV提供cv2.getPerspectiveTransform()构建。然后将矩阵传入函数cv2.warpPerspective。

importcv2importnumpyasnpimportmatplotlib.pyplotaspltimg=cv2.imread('test.png')rows,cols,ch=img.shapepts1=np.float32([[56,65],[368,52],[28,387],[389,390]])pts2=np.float32([[0,0],[300,0],[0,300],[300,300]])M=cv2.getPerspectiveTransform(pts1,pts2)dst=cv2.warpPerspective(img,M,(300,300))plt.subplot(121),plt.imshow(img),plt.title('Input')plt.subplot(122),plt.imshow(dst),plt.title('Output')plt.show()

0x09.图像regionsofInterest

有时需要对一副图像的特定区域进行操作,ROI使用Numpy索引来获得的。

importcv2importnumpyasnpimportmatplotlib.pyplotaspltimage=cv2.imread('test.png')rows,cols,ch=image.shapetall=image[0:100,300:700]image[0:100,600:1000]=tallallcv2.imshow("image",image)cv2.waitKey(0)cv2.destoryALLWindows()

0x10.通道的拆分/合并处理

有时需要对BGR三个通道分别进行操作。这时需要将BGR拆分成单个通道。同时有时需要把独立通道的图片合并成一个BGR图像。

使用OpenCV库函数版本

importcv2importnumpyasnpimportmatplotlib.pyplotaspltimage=cv2.imread('pitt1.jpg')rows,cols,ch=image.shape#拆分通道,cv2.split()是一个比较耗时的操作。只有需要时使用,尽量Numpyb,g,r=cv2.split(image)printb.shape#(768,1024)#合并通道image=cv2.merge(b,g,r)

THE END
1.100*50方木产品图片,100*50方木产品相册板材- 装饰板> 100*50方木 查看详细 >> 关注度:1177 联系方式 查看同类 100*50方木50*50方木 60*25方木 75*50方木 60*60方木 100*25方木 100*50方木 九正建材网 版权所有?2000-2012 全国免费服务热线:400 6464 001 传真:028-83370196 http://shop.jc001.cn/1479684/photo/2693547.html
2.震元制霉素片图片(50万单位*100片(震元))震元制霉素片图片(50万单位*100片(震元)),本页面主要内容为50万单位*100片(震元)规格的震元制霉素片外包装图片,同时还有震元制霉素片的内部包装、说明书图片。https://www.360lj.com/product/picture/725600.html
3.五层特硬(有扣手)100*50*50特大箱图片价格品牌报价蓝铎纸壳箱搬家公司办公室搬家搬书大纸箱子打包箱神器整理装资料超大 五层 特硬(有扣手) 100*50*50特大箱图片、价格、品牌样样齐全!【京东正品行货,全国配送,心动不如行动,立即购买享受更多优惠哦!】https://item.jd.com/60888893232.html
4.65度青花50汾酒100ml*1瓶礼盒装清香型国产白酒价格图片苏宁易购为您提供[汾酒官方旗舰店]山西杏花村汾酒 65度青花50汾酒100ml*1瓶礼盒装清香型国产白酒价格、图片、品牌、报价等信息,网购正品汾酒白酒首选苏宁易购汾酒官方旗舰店!https://m.suning.com/product/0070110515/12201911962.html
5.泰丰电缆桥架100*50(TAIFENG电缆桥架100*50)报价泰丰电缆桥架 100*50综合布线报价中心为您提供泰丰电缆桥架 100*50报价、泰丰电缆桥架 100*50图片、泰丰电缆桥架 100*50参数、泰丰电缆桥架 100*50评测,论坛等实用信息,通过我们指定的泰丰电缆桥架 100*50经销商选择您的泰丰电缆桥架 100*50,您还可以享受更多优惠https://product.yesky.com/product/514/514819/
6.电缆桥架50*100电缆桥架50*100100x50桥架45度计算公式算100*50桥架45度下坡方法。斜边(爬坡)=高x1.4底边=高上下翻切口处的宽=线槽的侧板高x8.1上下翻切口处宽=线槽的底部板宽x8.1。50乘100桥架下弯45度桥架100*50,100这面是水平面,50这面放样画线,放45度弯头,两个50这面45度弯头连接。100*50的桥架算多大的电缆桥架规格https://www.haoluoyi.com/29340.html
7.「轻钢龙骨」隔墙轻钢龙骨批发100竖骨50*0.5外形尺寸:100*50*0.5mm '1.展品展示:http://shop1373044123058.cn.makepolo.com/product/100606219299.html
8.www.cmosfet.com/newxr52216808.htm手机看片福利一区二区三区 91风月海棠50部未删减版 偷拍精品视频 特级毛片免费在线观看 五年沉淀只做精品iOS 789se toutoulu porno 原神大战史莱姆 青春学堂 色色亚洲视频 草久久影院 囯内又粗又猛又大的视频 女生说越痛男生越往里寒 羞羞mh一区二区在线 中国女人内谢69 100款禁用软件流氓软件下载 https://www.cmosfet.com/newxr52216808.htm
9.苏泊尔CYSB50FCW20QJ100CYSB50FCW20QT100报价参数别名:CYSB50FCW20QJ-100,CYSB50,50FCW20QJ-100 球面无缝贴合加热盘,智能5步烹饪,10重贴心防护,24小时预约定时 整体外观图 整体外观图 整体外观图 共27张图片>> 参考报价: ¥419 ¥?19打开APP,去京东下单最高减500元 重要参数: 产品容量:5L 产品功率:1000W https://detail.zol.com.cn/pressure_cooker/index1149932.shtml
10.2*50MW就是100MW。每小时10万度电,一年5000小时发电2*50MW就是100MW。每小时10万度电,一年5000小时发电。就是一年5亿度电,电价出厂算上一半损耗,能在0.2元左右,一年5000万左右的利润吧。对比30亿,要60年回本吗? 举报 郑重声明:用户在社区发表的所有信息将由本网站记录保存,仅代表作者个人观点,与本网站立场无关,不对您构成任何投资建议,据此操作风险自担。请勿https://guba.eastmoney.com/news,002665,162681300,d.html
11.A48Y40DN100,A48Y64DN125,弹簧全启式**阀100 50 265 210 150 172 38 3 4.5 8-30 125 270 220 176 188 28 3 4.5 8-25 195 195 690 150 80 355 290 204 250 46 3 4.5 12-34 200 375 320 260 282 38 3 4.5 12-30 280 265 935 产品【带扳手弹簧全启式**阀】 订货须知: 一、①带扳手弹簧全启式**阀产品名称与型号②带扳手弹簧http://www.wx-detian.com/pdlistone/products/17206565.html
12.卷积神经网络的分类卷积神经网络的分类器轩辕的技术博客该数据集来由美国国家标准与技术研究所发起整理,一共统计了来自250个不同的人手写数字图片,其中50%是高中生,50%来自人口普查局的工作人员。该数据集的收集目的是希望通过算法,实现对手写数字的分类识别。该数据集自1998年起,被广泛地应用于机器学习和深度学习领域,用来测试算法的效果,例如线性分类器、K-近邻算法、支https://blog.51cto.com/u_12227/7826864
13.髓母细胞瘤/细胞标志物及其应用61.甲醇100ml50%v/v乙酸20ml10%v/vfixative enhancer concentrate20ml10%v/vddh2o60ml30%v/v总共200ml100%v/v 62.② 冲洗步骤 63.把固定增强剂溶液从容器中倒掉。容器中加入200ml去离子双纯蒸馏水冲洗10分钟。10 分钟后,倒掉去离子双纯蒸馏水,更换新鲜的去离子双纯蒸馏水继续再冲洗10分钟。 https://www.xjishu.com/zhuanli/52/202110953641.html
14.花生常见病虫害及对应用药韭菜、葱、姜 抗性线蛆、韭蛆、蒜蛆 100-150克/亩滴灌、喷淋 地下害虫 跳甲幼虫、金针虫、地老虎、蛴螬 50-70毫升/亩喷淋 注意: 对于抗药性较高地域的桃树蚜虫、西瓜蚜虫,建议增加2倍的用量,比如河北区域、湖北枣阳的桃树黄蚜。 成分:5%胺鲜酯水剂 战略大品 解药害、解冻害优于芸苔素内酯 https://www.meipian.cn/2zpa88el
15.[孩子研究成果报告]如何区分孩子资质的档次(1)1.攻击资质=8*武学悟性+750+武学悟性/100*8*N N是0到5的随机数,代表了孩子攻击资质分为6个档次,其中5档是资质最高的档次。 2.体力资质=50*体质+500+体质/100*50*N N=0-10中的随机数,代表了孩子体力资质分为11个档次,其中10档是资质最高的档次。 https://xyq.yzz.cn/focus/200704/48321.shtml
16.100和50欧元纸币照片正版商用图片1952ch摄图新视界提供100 和 50 欧元纸币图片下载,另有50,和,钱钞,纸币,比尔,棕色,现金,货币,每个,欧元,欧洲,欧洲,五十,财务,金融图片搜索供您浏览下载,每张图片均有版权可放心商用,您正在浏览的图片为1952chhttps://xsj.699pic.com/tupian/1952ch.html
17.股指期权一手多少钱举例说明股指期权怎么交易20*100+3850*100*5%=21250元 因为是取两者中的最大值35500>21250,因此卖方最终缴纳的保证金为35500元。 股指期权怎么交易? 股指期权交易要开通股指期货账户,投资者可以在证券公司或者期货公司开户,股指期权开户要求:1、开户前20个交易日日均资产50万元及以上;2、在开户公司交易满6个月;3、有融资融券或者融资期http://finance.yutainews.com/caijing/2023/0605/67828.html