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相关推荐

  1. opencv3 图像处理(一)图像缩放( python与c++ 实现)

    opencv3 图像处理 之 图像缩放( python与c++实现 ) 一. 主要函数介绍 1) 图像大小变换 Resize () 原型: void Resize(const CvArr* src,C ...

  2. 图像金字塔(Python实现)

    图像金字塔(Python实现) 1 简介 在图像处理中常常会调整图像大小,最长的就是放大(zoom in)和缩小(zoom out),尽管集合变换也可以实现图像放大或者缩小 一个图像金字塔式一系列的图 ...

  3. python图片隐写_CTF 图像隐写Python脚本处理

    CTF中经常会遇到很多图片的隐写题目需要使用脚本来解题,最常用到的就是使用python中的PIL库,所以如果要更好的解出图片隐写相关处理的题目,掌握好这个库的使用是必要的.本期就来给大家介绍下这个库的 ...

  4. 基于opencv实现人脸猫脸图像检测(python)

    基于opencv实现人脸猫脸图像检测(python) 目录 基于opencv实现人脸猫脸图像检测(python) 1.方法流程如下 2 .导入相关库 3. 导入级联分类器 4.调整图像大小 5.彩色图 ...

  5. (亲测可行)基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现)

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 转载自 基于面绘制的MC算法以及基于体绘制的 Ray-casting 实现Dicom图像的三维重建(python实现) ...

  6. 一款图像相关软件PhoXo

    一款图像相关软件PhoXo SkySeraph May 22nd 2011  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified ...

  7. CVPR 2019 论文大盘点—文本图像相关篇

    点击我爱计算机视觉标星,更快获取CVML新技术 CV君盘点了 CVPR 2019 文本图像相关论文,总计 17 篇. 其中研究文本检测的最多,共 7 篇,包括已经非常知名的PSENet,还有最近异常火 ...

  8. python教程400集笔记,Python学习中的笔记--集合相关,python笔记--集合

    Python学习中的笔记--集合相关,python笔记--集合 集合的基本操作 一.可修改的集合set 创建集合 var = set() var = {'a','b','c','d'} 成员检测 va ...

  9. 图像相关层之卷积锐化图片示例

    图像相关层之卷积和池化锐化图片示例 注意:黑白图只有1个通道数,彩色图却含有三个通道数. 学习总结: Conv2d是torch.nn模块封装好的2维卷积模型. 相关图层锐化操作等操作不是直接修改卷积核 ...

最新文章

  1. 5个基本概念,从统计学到机器学习
  2. javacurrentmap_Java集合---ConcurrentHashMap原理分析
  3. 前端工程化工具Fekit分析
  4. 虚拟网卡技术-VETH、MACVLAN、IPVLAN
  5. mysql-视图、触发器、事务、存储过程、流程控制
  6. FFmpeg再学习 -- 视音频基础知识
  7. go中使用type关键字来定义类型别名
  8. qq掉线咒语:aidusort.as
  9. 利用 apache ab 测试服务器性能
  10. java不等于正整数怎么输入_关于java:测试输入是否为正整数
  11. 服务器线程数一直增加,.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长...
  12. 使用python的matplotlib模块对netflow的流量信息分析(饼图)
  13. php的四种常见运行方式
  14. 参考平面及其高度_国家标准照度参考表
  15. python和excel的优缺点_Excel不好吗?为什么非要学python?
  16. 第9章 课后作业
  17. 禁用win10触摸屏手势_禁用和启用Win10平板边缘滑动手势的详细方法
  18. Automating Android with Ant
  19. 大数据与个人隐私的平衡:懂你,但不认识你
  20. 当我想深入遗留代码一探究竟的时候

热门文章

  1. Bit-M开放 KGT/BTC和KGT/BMB 交易市场
  2. 2018年云南省三校生计算机考试大纲,云南省2018年三校生高考铁道运输类专业技能考核大纲...
  3. Linux root用户忘记密码的恢复方法
  4. scratch优秀案例-电脑足球赛,和电脑比拼一下球技吧
  5. 杭州朗新科技怎么样啊有什么发展前景啊
  6. 金融成AI最佳应用场景,“智能金融”时代真的来了么?
  7. linux磁盘快速拷贝,UNIX下用DD做磁盘完整拷贝
  8. hutool Java工具类
  9. ups计算机硬维护嘛,UPS蓄电池的选择与维护
  10. PANDAS: 新手教程 一