添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
叛逆的消防车  ·  Android9.0 ...·  10 月前    · 
from utils.utils import Directory_Hanlder # Directory_Hanlder代码链接:https://blog.csdn.net/qq_16555103/article/details/107146429 import os import time import re from tqdm import tqdm import cv2 import numpy as np import argparse # 读取带有中文路径的图片 def cn_imread(filePath): cv_img = cv2.imdecode(np.fromfile(filePath, dtype=np.uint8), cv2.IMREAD_COLOR) cv2.imdecode 参数与 cv2.imread 打开的图片相似,如果不需要第四通道,选择 cv2.IMREAD_COLOR,此时读取图片的格式为 bgr cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。 cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。 cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1 except Exception as e: print('当前图片opencv无法读取,原因为:\n{}'.format(e)) cv_img = None return cv_img # 保存带有中文路径的图片 def cn_imwrite(file_path , img_array): # 这个方法需要特别注意,img_array一定是一个BGR格式的uint8 ndarray cv2.imencode('.jpg', img_array)[1].tofile(file_path) def single_img_save(img_array,report_path,img_name): 输入 img BGR格式的数组,保存图片【.jpg】到指定路径 :param img_array: :return: img_path = os.path.join(report_path,img_name) cn_imwrite(img_path,img_array) # cv2.imwrite(img_path, img_array) def single_img_intercept(fpath,top=0.0,battle=0.125): 给定一张需要剪切的图片的路径 与 图片上下需要剪切的比例 :param fpath: 图片的路径 :param top: 图片上侧的比例 :param battle: 图片下侧的比例 :return: img = cn_imread(fpath) if img is None: return None img_shape = img.shape height,weight = img_shape[0],img_shape[1] height_start = int(np.floor(top*height)) height_end = int(-1 * np.floor(battle*height)) img = img[height_start:height_end] return img if __name__ == '__main__': # 创建对象 parser = argparse.ArgumentParser() # 添加参数 parser.add_argument('--Dir', help='source dir',type=str) parser.add_argument('--top', help='top value',type=float) parser.add_argument('--battle', help='battle value',type=float) # 使用parse_args解析参数 args = parser.parse_args() dir_ = args.Dir top = args.top battle = args.battle # 构建路径 source_dir = dir_ report_dir_path = os.path.join(source_dir, 'report_img') Directory_Hanlder.check_directory(report_dir_path) Directory_Hanlder.clean_directory(report_dir_path) # 遍历文件夹下所有的文件 files_path, dirs_path = Directory_Hanlder.list_dir_all_files(source_dir) # 重写图片名 for idx,img in tqdm(enumerate(files_path)): # 将指定的文件img复制到report_dir_path的文件夹里面 img_array = single_img_intercept(img,top=top,battle=battle) if img_array is None: continue img_name = img.split('\\')[-1] single_img_save(img_array,report_dir_path,img_name)

参考: OpenCV—Python 图像指定区域裁剪

# 按指定图像大小调整尺寸 def resize_ im age( im age, height = 640, width = 480): top, bottom, left, right = (0,0,0,0) # 获取 图片 尺寸 h, w, _ = im age.shape # 对于长宽不等的 图片 ,找到最长的一边 longest_edge = max(h,w) # 计算短边需要增加多少像素宽度才能与长边等长(相当于pad 是跟.tex文件具有相同路径,所以直接写 图片 名称即可。 \includegraphics[width=1\linewidth]{graph_rela.png} 当前子文件夹下的 图片 是相对路径,写:文件夹名+ 图片 名 \includegraphics[width=1\linewidth]{figures//graph_rela.png} 其他文件夹的 图片 可以采用绝对路径。 \includegraphics{D:/matlab/ im age/zs.eps} 二、 图片 的导入部分 在 LaTeX 中插图,首先要生成 格式的 图片 ,有三种方法:NOTE:如果 visio 画图保存为 pdf 出现失真,解决办法是先保存为 图片 ,选择打印机,然后再用 shell 将 jpg 转换为 eps(第三种方法) 在导言区添加宏包: 将 图片 和自己的 文件放在同一目录下,向 LaTeX 插入代码: 解释一下每一句的功能: 图片 位置控制参数: 表示当前位置(here),也就是说 图片 将放在你设置的当前位置,但是如果这一页的空间不足以放下这个 图片 ,此时 图片 会转到下一页; 顶端(top),此时优先 LaTeX插入 图片 时,常用的 图片 格式有:png, pdf, jpg, eps。以上四种 图片 格式各有优劣,其中最为显著的差异是清晰度和 图片 文件大小。在清晰度方面:eps是清晰度最高的,其次是pdf和png,最后是jpg。 图片 命名中不要出现中文字符、不要空格和其他特殊符号,建议只用英文字母、下划线和简单符号。 若 图片 格式不是以上四种,或者 图片 中空白边缘过多,可以用PS 进行 处理并转存为以上四种格式之一。 注意需要 裁剪 图片 中多余空白部分 0. 参数设置 htbp 选项用来指定插图的理想位置,这几个字母分. 我们需要用“usepackage”来引入“graphicx”宏包。 然后在文档中用includegraphics插入图像。 该命令的必选参数,用于指定需要插入的图像文件的文件名,其可选参数用于指定图像的缩放比例,旋转等。 当使用XeLaTeX编译时,graphicx宏包支持多种图像文件格式。 还可以使用graphicspath指定图像文件的搜索路径。将图像等资源文件 进行 分门别类管理。 (1)将 图片 存放的文件夹figures与pics 文章目录插入图像介绍 图片 的文件夹路径更改图像大小和旋转 图片 定位字幕、标签和参考字幕标签和交叉引用生成高分辨率和低分辨率图像参考LATEX单位和长度关于LATEX中的图像类型latexpdflatex矢量格式还是位图格式? 图像是大多数科学文献中必不可少的元素。LATEX提供了几个选项来处理图像并使它们看起来完全符合您的需要。在本文中,我们将解释如何以最常见的格式包含图像,如何缩小、放大和旋转它们,以及如何在文档中引用它们。 以下是有关如何导入 图片 的示例。 \usepackage{graphi cut_item_ im g_cv(file_name, in_ im g_path, out_dir): im g = cv2 . im read (in_ im g_path)... 直接上效果图,看看是否是你的需求 项目要求:给定 图片 ,自动检测最小外接矩阵,并 裁剪 。 文章底部附上整个项目的代码,只需改动main函数的输入图像地址,就可得到本文陈列的所有效果图。 左1:根据 cv2 .findContours()找到多个轮廓,中间:根据最大轮廓原则选择最大的2个轮廓并求出相应最小外接矩阵,右1:根据外接矩阵提供的坐标 进行 裁剪 。 step1: 加载 图片 ,转成灰度图,用Sobel算子计算x,y方向上的梯度,之后在x方向上减去y方向上的梯度,通过这个减法,我们留下具有高水平梯度和低垂直梯度的图 在这篇文章里我们聊一下 Python 实现 图片 裁剪 的两种方式,一种 利用 了Pillow,还有一种 利用 OpenCV 。两种方式都需要简单的几行代码,这可能也就是现在 Python 那么流行的原因吧。首先,我们有一张原始 图片 ,如下图所示:然后,我们 利用 OpenCV 对其 进行 裁剪 ,代码如下所示: im port cv2 im g= cv2 . im read ("./data/cut/thor.jpg")print( im g.shap...