图像相关处理 python
import cv2
import osimg=cv2.imread("文件路径")
img_shape=img.shape #返回(高,宽,通道)
img=cv2.resize(img,img_scale) # img_scale=(输出尺寸的宽,高)
img_crop=img[y0:y1,x0:x1] #裁剪img=cv2.undistort(img_path, mtx, dist, None, undistort_mtx)#去畸变img=cv2.imwrite("img_savepath", img)basename=os.path.basename(img_path)#取后缀名
new_path=os.path.join('old_dir','.jpg')#将路径和后缀结合#避免解码错误
img = cv2.imdecode(np.fromfile(in_imgfile,dtype=np.uint8),-1)cv2.imencode('.jpg',img)[1].tofile(out_imgfile)
批量读取文件夹中的图片,并按照图片名数值从小到大排序读取。
import osimgList=os.listdir(input_path)
imgList.sort()
for filename in imgList:filepath=os.path.join(input_path,filename)#单张图片完整相对路径
从图片合成视频
将文件夹中图片排序读取,并合成视频
import os
import cv2video_dst='./save.avi'#要生成的视频
imput_path='./input_images/'#被合成视频的图片文件夹所在路径fps=10#帧率img_size=(1290*2,1069)
fourcc=cv2.VideoWriter_fourcc('M','J','P','G')
videoWiter=cv2.VideoWriter(video_dst,fourcc,fps,img_size)imgList=os.listdir(input_path)
imgList.sort()
for filename in imgList:im_name=os.path.join(input_path,os.path.splitext(filename)[0]+'.png')frame=cv2.imread(im_name)videoWriter.write(frame)print(im_name)videoWriter.release()
python import os
使用汇总
input_path='/home/lcy/model/123.456.png'
input_path1='/home/lcy/model'
input_path2='123.456.png'os.getcwd() #当前终端所在绝对路径
os.path.join() #会生成上面的input_path
os.path.splitext(input_path)[0] #去掉后缀名的图片名123.456
os.path.split(input_path)[0] #去掉包含后缀名的图片名视为路径/home/lcy/model/
input_path.split('.')[0] #123
os.path.dirname(input_path) #取文件夹路径
os.path.exists(os.path.dirname(input_path)) #看文件夹路径是否存在if not os.path.exists(os.path.dirname(input_path)):os.mkdir(os.path.dirname(input_path))os.makedirs()import pathlib
pathlib.Path('/my/directory').mkdir(parents=True, exist_ok=True) #读取文件夹中文件
filelist = os.listdir(dir)
filelist.sort()#读取txt文件
f = open(dir, 'r')
filelist = f.readlines#直接加载txt内容
np.loadtxt(dir, dtype=np.float64).reshape(-1,5)#写入文件
with open(dir, 'w') as f:f.wite(lines)
注意:x和y均为int类型
python 画点
cv2.circle(img,(x,y),1,(0,255,255),4) #图 圆心 半径 颜色 圆边界线的粗细
python 画线
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),8)
画框
cv2.rectangle(img, (bbox.left, bbox.top), (bbox.right, bbox.bottom), (0,0,255), 2)
左上角与右下角的x,y
python 批量画线
import cv2
import PIL.Image
import PIL.ImageDrawimg=cv2.imread('./img.jpg')
img_pil=PIL.Image.fromarray(img)for i,lane in enumerate(lanes):PIL.ImageDraw(img_pil).line(xy=lane,fill=(0,0,255),width=8)#其中lane=(x,y),tuple类型img_vis=np.array(img_pil,dtype=np.unit8)
cv2.imwrite('./result.jpg',img_vis)
log文件
在这里插入代码片
PIL转cv2
import cv2
from PIL import Image
import numpypath = 'F:/File_Python/Resources/face_images/LZT01.jpg'
img = Image.open(path).convert("RGB")#.convert("RGB")可不要,默认打开就是RGB
img = cv2.cvtColor(np.array(img),cv2.COLOR_RGB2BGR)
cv2.imshow("OpenCV",img)
cv2.waitKey()
复制文件
import shutil
shutil.copy(input_img_path, save_img_path)
图像相关处理 python相关推荐
- opencv3 图像处理(一)图像缩放( python与c++ 实现)
opencv3 图像处理 之 图像缩放( python与c++实现 ) 一. 主要函数介绍 1) 图像大小变换 Resize () 原型: void Resize(const CvArr* src,C ...
- 图像金字塔(Python实现)
图像金字塔(Python实现) 1 简介 在图像处理中常常会调整图像大小,最长的就是放大(zoom in)和缩小(zoom out),尽管集合变换也可以实现图像放大或者缩小 一个图像金字塔式一系列的图 ...
- python图片隐写_CTF 图像隐写Python脚本处理
CTF中经常会遇到很多图片的隐写题目需要使用脚本来解题,最常用到的就是使用python中的PIL库,所以如果要更好的解出图片隐写相关处理的题目,掌握好这个库的使用是必要的.本期就来给大家介绍下这个库的 ...
- 基于opencv实现人脸猫脸图像检测(python)
基于opencv实现人脸猫脸图像检测(python) 目录 基于opencv实现人脸猫脸图像检测(python) 1.方法流程如下 2 .导入相关库 3. 导入级联分类器 4.调整图像大小 5.彩色图 ...
- (亲测可行)基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 转载自 基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现) ...
- 一款图像相关软件PhoXo
一款图像相关软件PhoXo SkySeraph May 22nd 2011 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- CVPR 2019 论文大盘点—文本图像相关篇
点击我爱计算机视觉标星,更快获取CVML新技术 CV君盘点了 CVPR 2019 文本图像相关论文,总计 17 篇. 其中研究文本检测的最多,共 7 篇,包括已经非常知名的PSENet,还有最近异常火 ...
- python教程400集笔记,Python学习中的笔记--集合相关,python笔记--集合
Python学习中的笔记--集合相关,python笔记--集合 集合的基本操作 一.可修改的集合set 创建集合 var = set() var = {'a','b','c','d'} 成员检测 va ...
- 图像相关层之卷积锐化图片示例
图像相关层之卷积和池化锐化图片示例 注意:黑白图只有1个通道数,彩色图却含有三个通道数. 学习总结: Conv2d是torch.nn模块封装好的2维卷积模型. 相关图层锐化操作等操作不是直接修改卷积核 ...
最新文章
- 5个基本概念,从统计学到机器学习
- javacurrentmap_Java集合---ConcurrentHashMap原理分析
- 前端工程化工具Fekit分析
- 虚拟网卡技术-VETH、MACVLAN、IPVLAN
- mysql-视图、触发器、事务、存储过程、流程控制
- FFmpeg再学习 -- 视音频基础知识
- go中使用type关键字来定义类型别名
- qq掉线咒语:aidusort.as
- 利用 apache ab 测试服务器性能
- java不等于正整数怎么输入_关于java:测试输入是否为正整数
- 服务器线程数一直增加,.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长...
- 使用python的matplotlib模块对netflow的流量信息分析(饼图)
- php的四种常见运行方式
- 参考平面及其高度_国家标准照度参考表
- python和excel的优缺点_Excel不好吗?为什么非要学python?
- 第9章 课后作业
- 禁用win10触摸屏手势_禁用和启用Win10平板边缘滑动手势的详细方法
- Automating Android with Ant
- 大数据与个人隐私的平衡:懂你,但不认识你
- 当我想深入遗留代码一探究竟的时候
热门文章
- Bit-M开放 KGT/BTC和KGT/BMB 交易市场
- 2018年云南省三校生计算机考试大纲,云南省2018年三校生高考铁道运输类专业技能考核大纲...
- Linux root用户忘记密码的恢复方法
- scratch优秀案例-电脑足球赛,和电脑比拼一下球技吧
- 杭州朗新科技怎么样啊有什么发展前景啊
- 金融成AI最佳应用场景,“智能金融”时代真的来了么?
- linux磁盘快速拷贝,UNIX下用DD做磁盘完整拷贝
- hutool Java工具类
- ups计算机硬维护嘛,UPS蓄电池的选择与维护
- PANDAS: 新手教程 一