【数据处理】:(一)图片类

数据处理四 基于图像hash进行数据整理(删除重复图片、基于模版查找图片) 哈希相似度算法(Hash algorithm),它的作用是对每张图片生成一个固定位数的Hash 值(指纹 fingerprint)字符串,然后比较不同图片的指纹,结果越接近,就说明图片越相似。图像Hash算法准确的说有三种,分别为平均哈希算法(aHash)、感知哈希算法你(pHash)和差异哈哈希算法(dHash)。 `图像hash与上文中描述的hash算法目的不同,图像hash主要可用于判断或查找相似的图片,我们要尽可能的是图像hash值具有意义,与内容相关。`他应当具备以下特点: * 1、高效计算,能 阅读详情

一、csv文件中包含图片地址与分类

1、先读取csv文件

train_data = pd.read_csv("../data/classify-leaves/train.csv")
test_data = pd.read_csv("../data/classify-leaves/test.csv")

2、将分类取出,得到classes

classes = sorted(list(set(train_data['label'])))

3、把classes转成对应的数字

classes_to_num = dict(zip(classes,range(n_classes)))

4、获取train_data

(1)定义一个class

初始化,传入csv文件路径,image公共路径,处理后的长宽,transform

    def __init__(self,csv_path,img_path,mode,height = 224,
                 weight = 224,valid_ratio=0.2,transform = None):
        super(LeaveDataset, self).__init__()

        self.csv_path = csv_path
        self.resize_height = height
        self.resize_weight = weight
        self.transform = transform
        self.img_path = img_path
        self.mode = mode
        # print(self.mode)
        # 读取 csv 文件
        # 利用pandas读取csv文件
(2)获取data_info

使用pd.read_csv()读取数据,去除表头

self.data_info = pd.read_csv(csv_path,header=None)
(3)划分数据集

分析获取到的csv数据

是否有验证集,若没有,则将训练集划分为训练集与验证集,通过分析结构,得到图片路径与label,

 		self.data_len = len(self.data_info.index)-1
        self.train_len = int(self.data_len*(1-valid_ratio)) 
		# 划分验证集val_data
        
        # 根据不同模式,进行处理,返回不同结果
        if mode == 'train':
            # 文件第一列包含图像文件名称
            self.img_arr = np.asarray(self.data_info.iloc[1:self.train_len, 0])
            # print(self.img_arr)

            self.label_arr = np.asarray(self.data_info.iloc[1:self.train_len, 1])
            # print(self.label_arr)
        elif mode == 'valid':
            # 文件第一列包含图像文件名称
            self.img_arr = np.asarray(self.data_info.iloc[self.train_len:, 0])
            # print(self.img_arr)
            self.label_arr = np.asarray(self.data_info.iloc[self.train_len:, 1])
            # print(self.label_arr)
        elif mode == 'test':
            # 文件第一列包含图像文件名称
            self.img_arr = np.asarray(self.data_info.iloc[1:, 0])
            # print(self.img_arr)

        self.real_len = len(self.img_arr)

        print('Finished reading the {} set of Leaves Dataset ({} samples found)'
              .format(self.mode, self.real_len))

        
        
(4)通过图片路径,获取图片,返回图片与label
 	def __getitem__(self, item):
        single_image_name = self.img_arr[item]

        img = Image.open(self.img_path+single_image_name)

        img = self.transform(img)
        if self.mode == 'test':
            return img
        else:
            label = self.label_arr[item]
            num_label = classes_to_num[label]

            return (img,num_label)

    def __len__(self):
        return self.real_len

5、获取test_data

test_data与train_data基本相同,没有label

6、调用traindata、validdata、testData

train_dataset = LeaveDataset(csv_path="../data/classify-leaves/train.csv",img_path=Img_PATH,mode='train',transform = train_transform)
valid_dataset = LeaveDataset(csv_path="../data/classify-leaves/train.csv",img_path=Img_PATH,mode='valid',transform = val_test_transform)
test_dataset = LeaveDataset(csv_path="../data/classify-leaves/test.csv",img_path=Img_PATH,mode='test',transform = val_test_transform)

7、使用DataLoader分批次加载数据

train_loader = DataLoader(train_dataset,batch_size,shuffle=True,num_workers=5)
valid_loader = DataLoader(train_dataset,batch_size,shuffle=True,num_workers=5)
test_loader = DataLoader(test_dataset,batch_size,shuffle=True,num_workers=5)


8、训练

for epoch in range(num_epoch):
	net.train()
    loss_sum = 0
	loss_correct = 0    
    for i,data in enumerate(train_loader):
        inputs,labels = data
        inputs = inputs.to(device)
        labels = labels.to(device)
        outputs = net(inputs)
        loss = loss_func(outputs,labels)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        _,pred = torch.max(outputs.data,dim =1)
        correct = pred.eq(labels.data).cpu().sum()

        loss_sum += loss.item()
        loss_correct += correct.item()

        step += 1
	print("train epoch", epoch + 1, "train loss is: ", loss_sum * 1.0 / len(train_loader), "train correct is: ",
              loss_correct * 100.0 / len(train_loader) / batch_size)



二、若为压缩包,解压为按照分类,将图片存入分类下的文件夹中

定义类别名称

label_name = [
    "airplane",
    "automobile",
    "bird",
    "cat",
    "deer",
    "dog",
    "frog",
    "horse",
    "ship",
    "truck"
]


批量glob训练数据与测试数据压缩包

train_list = glob.glob("C:\document\python\pythonDemo\pytorchTest\data\cifar-10-python\cifar-10-batches-py\data_batch_*")
test_list = glob.glob("C:\document\python\pythonDemo\pytorchTest\data\cifar-10-python\cifar-10-batches-py\\test_batch*")

定义解压后训练与测试图片路径

save_path = "/pytorchTest/data/cifar-10-python/cifar-10-batches-py/test"

遍历训练数据压缩包

for l in test_list:
    # print(l)
    l_dict = unpickle(l)  #使用unpickle函数解压压缩包
    # print(l_dict)
    # l_dict :  
    # b'king_charles_spaniel_s_000029.png', b'fawn_s_001506.png', b'compact_car_s_001759.png',
    
    # print(l_dict.keys())
	# l_dict.keys() :dict_keys([b'batch_label', b'labels', b'data', b'filenames'])
    
    for im_idx,im_data in enumerate(l_dict[b'data']):  
        # print(im_idx)
        # print(im_data)

        im_label = l_dict[b'labels'][im_idx]
        im_name = l_dict[b'filenames'][im_idx]

        # print(im_label,im_name)

        im_label_name = label_name[im_label]
        im_data = np.reshape(im_data,[3,32,32])
        im_data = np.transpose(im_data,(1,2,0))

        # cv2.imshow("im_data", cv2.resize(im_data, (200, 200)))
        # cv2.waitKey(0)

        if not os.path.exists("{}/{}".format(save_path,im_label_name)):
            os.mkdir("{}/{}".format(save_path,im_label_name))

        cv2.imwrite("{}/{}/{}".format(save_path,im_label_name,im_name.decode("utf-8")),im_data)

三、已经将图片按照图片分类存入分类下的文件夹中

1、定义分类集合,并转化为对应数字

abel_name = ["airplane", "automobile", "bird",
              "cat", "deer", "dog",
              "frog", "horse", "ship", "truck"]

label_dict = {}

for idx, name in enumerate(label_name):
    label_dict[name] = idx

2、定义加载图片函数,Image.open()

并规定以什么样的方式打开

def default_loader(path):
    return Image.open(path).convert("RGB")

3、定义transformer

train_transform = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomVerticalFlip(),
    transforms.RandomRotation(90),
    transforms.ColorJitter(brightness=0.2, contrast=0.2, hue=0.2),
    transforms.RandomGrayscale(0.2),
    transforms.RandomCrop(28),
    transforms.ToTensor(),
    transforms.Normalize((0.4914, 0.4822, 0.4465),
                         (0.2023, 0.1994, 0.2010)),
])

test_transform = transforms.Compose([
    transforms.CenterCrop((32, 32)),
    transforms.ToTensor(),
    transforms.Normalize((0.4914, 0.4822, 0.4465),
                         (0.2023, 0.1994, 0.2010)),
])

4、继承torch.utils.data中的Datasetm,并定义自己的Dataset Class

首先定义__init__()函数

传入图片地址集合,数据增强方案transform

**根据文件夹名字为分类,可以采用split获取该图片的label,**并使用label_dict转为数字。使用append加入imgs列表中

    def __init__(self, im_list,
                 transform=None,
                 loader = default_loader):
        super(MyDataset, self).__init__()
        imgs = []

        for im_item in im_list:
            #"/home/kuan/dataset/CIFAR10/TRAIN/" \
            #"airplane/aeroplane_s_000021.png"
            im_label_name = im_item.split("\\")[-2]
            imgs.append([im_item, label_dict[im_label_name]])

        self.imgs = imgs
        self.transform = transform
        self.loader = loader
定义getitem()函数

根据保存起来的imgs,里面有图片地址,以及分类。调用default_loader打开图片,然后进行数据增强,返回增强后的图片与分类

    def __getitem__(self, index):
        im_path, im_label = self.imgs[index]
        im_data = self.loader(im_path)
        if self.transform is not None:
            im_data = self.transform(im_data)

        return im_data, im_label
len()函数
    def __len__(self):
        return len(self.imgs)

5、调用上面的定义

使用glob获取所有图片地址
im_train_list = glob.glob("C:\\document\\python\\pythonDemo\\pytorchTest\\data\\cifar-10-python\\cifar-10-batches-py\\train\\*\\*.png")
im_test_list = glob.glob("C:\\document\\python\\pythonDemo\\pytorchTest\\data\\cifar-10-python\\cifar-10-batches-py\\test\\*\\*.png")
调用Mydataset
train_dataset = MyDataset(im_train_list,transform=train_transform)
test_dataset = MyDataset(im_test_list,transform =test_transform)

6、dataloader

train_loader = DataLoader(dataset=train_dataset,batch_size=128,shuffle=True,num_workers=4)
test_loader = DataLoader(dataset=test_dataset,batch_size=128,shuffle=False,num_workers=4)

四、划分数据集

# -*- coding: utf-8 -*-
"""
将数据集划分为训练集,验证集,测试集
"""

import os
import random
import shutil
# 创建保存图像的文件夹
def makedir(new_dir):
    if not os.path.exists(new_dir):
        os.makedirs(new_dir)
random.seed(1) # 随机种子

# 1.确定原图像数据集路径
dataset_dir = "C:\document\python\pythonDemo\pytorchTest\data\Rice_Image_Dataset\Rice_Image_Dataset"  ##原始数据集路径
# 2.确定数据集划分后保存的路径
split_dir = "C:\document\python\pythonDemo\pytorchTest\data\Rice_Image_Dataset"  ##划分后保存路径
train_dir = os.path.join(split_dir, "train")
valid_dir = os.path.join(split_dir, "val")
test_dir = os.path.join(split_dir, "test")
# 3.确定将数据集划分为训练集,验证集,测试集的比例
train_pct = 0.9
valid_pct = 0.1
test_pct = 0.1
# 4.划分
for root, dirs, files in os.walk(dataset_dir):
    for sub_dir in dirs: # 遍历0,1,2,3,4,5...9文件夹
        imgs = os.listdir(os.path.join(root, sub_dir)) # 展示目标文件夹下所有的文件名
        imgs = list(filter(lambda x: x.endswith('.jpg'), imgs)) # 取到所有以.png结尾的文件,如果改了图片格式,这里需要修改
        random.shuffle(imgs)  # 乱序图片路径
        img_count = len(imgs)  # 计算图片数量
        train_point = int(img_count * train_pct)  # 0:train_pct
        valid_point = int(img_count * (train_pct + valid_pct))  # train_pct:valid_pct

        for i in range(img_count):
            if i < train_point:  # 保存0-train_point的图片到训练集
                out_dir = os.path.join(train_dir, sub_dir)
            elif i < valid_point:  # 保存train_point-valid_point的图片到验证集
                out_dir = os.path.join(valid_dir, sub_dir)
            else:  #  保存valid_point-结束的图片到测试集
                out_dir = os.path.join(test_dir, sub_dir)
            makedir(out_dir) # 创建文件夹
            target_path = os.path.join(out_dir, imgs[i]) # 指定目标保存路径
            src_path = os.path.join(dataset_dir, sub_dir, imgs[i])  #指定目标原图像路径
            shutil.copy(src_path, target_path)  # 复制图片

        print('Class:{}, train:{}, valid:{}, test:{}'.format(sub_dir, train_point, valid_point-train_point,
                                                             img_count-valid_point))

五、相关知识

glob

返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。下面是使用glob.glob的例子:

import glob

#获取指定目录下的所有图片
print (glob.glob(r"/home/qiaoyunhao/*/*.png"),"\n")#加上r让字符串不转义

#获取上级目录的所有.py文件
print (glob.glob(r'../*.py')) #相对路径

asarray

转换输入为数组 array

输入参数
a:类数组。输入数据,可以是转换为数组的任意形式。比如列表、元组列表、元组、元组元组、列表元组和 ndarray;

dtype:数据类型,可选。默认情况下,该参数与数据数据类型相同。

order:{‘C’,‘F’},可选。选择是行优先(C-style)或列优先(Fortran-style)存储。默认为行优先。

返回值
out:ndarray。‘a’ 的数组形式。如果输入已经是匹配 dtype 和 order 参数的 ndarray 形式,则不执行复制,如果输入是 ndarray 的一个子类,则返回一个基类 ndarray。

enumerate()

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

Cocos Creator+微信小游戏:如何用wxDownloader实现资源动态加载与热更新 本文深入探讨了在Cocos Creator开发微信小游戏时,如何利用wxDownloader有效应对主包体积限制,实现资源的动态加载与热更新。文章详细介绍了从项目配置、资源标记到初始化加载的完整流程,并重点解析了基于MD5 Cache的缓存策略与版本控制方案,旨在帮助开发者构建稳健高效的资源管理体系,优化游戏启动速度与更新体验。 阅读详情

相关推荐

LabVIEW通过ActiveX控件实现与三菱FX5U PLC的高效数据交互

本文详细介绍了如何利用LabVIEW的ActiveX控件,通过三菱官方MX Component工具包实现与FX5U PLC的高效数据交互。文章从环境配置、控件插入到实战代码解析,系统讲解了连接建立、数据读写及资源释放的全流程,并提供了关键的避坑指南,帮助工程师快速构建稳定可靠的上位机通讯系统。

weixin_29197051的博客 373

pytorch图像识别,识别rice-image-dataset数据集。

水稻是世界范围内生产最广泛的粮食产品之一,具有许多遗传品种。这些品种由于其某些特征而彼此分离。这些通常是纹理、形状和颜色等特征。有了这些区分水稻品种的特征,就可以对种子的质量进行分类和评估。在这项研究中,使用了Arborio,Basmati,Ipsala,Jasmine和Karacadag,它们是土耳其经常种植的五种不同品种的水稻。数据集中共包含 75,000 张颗粒图像,其中每个品种有 15,000 张。

weixin_43788986的博客 1764

weblogic启动异常故障处理(boot认证失败)

root 用户生成的文件属主为 root,WebLogic进程将无权读取,直接导致认证失败。· ⚠️ 密码必须完全一致:第3步 AdminAccount 命令中设置的密码,与第5步所有 boot.properties 文件中 password= 字段的值,必须保证完全一致。如果您的域下配置了受管服务器实例(如 ms_server1、ms_server2 等),必须逐一更新各实例下的免密启动文件,确保实例重启时密码与AdminServer保持一致,否则实例启动会因认证失败而报错。此步骤至关重要,必须执行。

weixin_53389944的博客 222

PyTorch学习之路(level2)——自定义数据读取

在上一篇博客PyTorch学习之路(level1)——训练一个图像分类模型中介绍了如何用PyTorch训练一个图像分类模型,建议先看懂那篇博客后再看这篇博客。在那份代码中,采用torchvision.datasets.ImageFolder这个接口来读取图像数据,该接口默认你的训练数据是按照一个类别存放在一个文件夹下。但是有些情况下你的图像数据不是这样维护的,比如一个文件夹下面各个类别的图像数据都有

AI之路 2万+

NVIDIA DGX Spark 开发环境深度配置与优化指南

定期系统维护每月执行一次完整的系统更新监控存储空间使用情况,及时清理临时文件定期检查硬件健康状况开发习惯优化使用tmux或screen管理长时间运行的任务配置自动化测试和代码质量检查建立完善的项目文档体系性能调优周期每月重新评估和调整系统参数根据工作负载特点优化容器配置持续监控和记录性能指标DGX Spark作为一个强大的AI开发平台,其真正的价值需要通过精细的环境配置和优化才能充分发挥。本文提供的配置方案和建议均基于实际生产环境经验,旨在帮助开发者构建稳定、高效、可维护的开发环境。

time_days的博客 3687

字符串替换—牛客网(C++实现)

一.题目描述 请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。 给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。 测试样例: “A%sC%sE”,7,[‘...

qq_38358582的博客 1522

【OpenCV 例程300篇】03. 图像的显示(cv2.imshow)

函数 cv2.imshow() 在指定窗口中显示 OpenCV 图像,窗口自适应图像大小。 OpenCV 完整例程 200 篇 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imshow) 07. 图像的创建(np.zeros) 08. 图像的复制(np.copy) 09. 图像的裁剪(cv2.selectROI) 10. 图像的拼接(np.hstack)...............

youcans的博客 9万+

深度学习入门:一文详解BP神经网络

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少。实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层。上面是对隐含层和输出层之间的权值和输出层的阀值计算调整量,而针对输入层和隐含层和隐含层的阀值调。在BP神经网络中,输入层节点没有阀值。神经网络,神经网络在机器学习中应用比较广泛,比如函数逼近,模式识别,分类,数据压缩,数据。要求输入模式要有足够的随机性,对输入模式的噪声比较敏感,即对于剧烈变化的输入模式,训。

Machine Learning with Tutors 4万+

Pytorch模型训练-----------数据集加载之ImageFolder之全过程

数据集加载之ImageFolder ImageFolder一个通用的数据加载器,数据集中的数据以以下方式组织 函数如下 ImageFolder(root, transform``=``None``, target_transform``=``None``, loader``=``default_loader) 参数解释 root 指定路径加载图片 transform:对PIL Image进行的转换操作,transform的输入是使用loader读取图片的返回对象 target_tran

ahelloyou的博客 7053

【WRF-FDDA】观测 Obs nudging 的配置与使用说明(中)

WRF-FDDA

WW、forever的博客 281

安卓中蓝牙免提HFP的一些分析

最近看了一些大牛的博客,无不提到了技术分享的重要性,的确,分享自己的知识不仅仅是与他人讨论并相互提高的过程,更是对自己知识的梳理。希望自己能以此为契机,形成周期性博客分享的习惯。 文章标题为HFP的一些分析,HFP(Hand Free Profile)主要定义了安卓中与接打电话相关的一些功能的实现。本文主要介绍这其中对于HFP非常重要的Service Level Connection的建立。首先...

底层码农 772

在csv文件中提取特定的数据做图-以天气为例子

自己学习的体会和生活感悟,不用打开看。谢谢!

Jianhao 1903

<IBM DB2>《DB2 官方监控脚本 2022版本》

DB2 监控脚本

Else 的博客 671

apache poi excel显示 base64 图片_数据处理之带图片Excel数据处理解惑

小编最近项目中遇到一个大批量Excel数据提取的问题,因为Excel数据中含有图片,所以在程序处理时遇到了困难,小编花了点时间才解决了这个问题,所以在这里mark一下。1 问题描述首先来描述一下数据处理的需求,如下图所以是给定Excel表的数据结构(非项目数据,自己构造),数据包括人的照片、身份证号、生日等信息,数据处理的需求是将Excel中的图片提取出来并命名为对应身份证号码保存。2 pytho...

weixin_30970539的博客 2254

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ArcGIS数据处理JPG图片地理配准和矢量化空间校正

ArcGIS数据处理JPG图片地理配准和矢量化空间校正 地理配准的对象是栅格数据,而空间校正的对象是矢量数据。 01 地理配准 首先将需要配准的JPG图片(北京市朝阳区)加载到ArcGIS中,这时会提示我们添加的数据源缺少空间参考信息。 点击确定 这种情况下,我们有两种处理方式: 如果我们先对它进行矢量化,后续就得地理配准和空间校正; 如果我们先对它进行地理配准再进行矢量化就可省去空间校正这一步骤。 这里采用第一种方式,目的是讲一下空间校正 创建面要素用于矢量化图中红色区域 矢量化结果如图,这时的矢量化结果

qq_43173805的博客 2万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

RAG实战指南 Day 9:多模态数据处理:图片与表格数据

今天,我们深入探讨了多模态RAG系统中图片与表格数据处理的核心技术。多模态嵌入的基本原理和实现方法表格数据的三种处理策略及其适用场景完整的Python实现多模态RAG管道医疗报告分析的真实案例研究从简单到复杂逐步引入多模态能力根据业务需求调整各模态的权重建立专门的多模态评估流程明天预告:Day 10将探讨"数据清洗与质量控制策略",这是构建可靠RAG系统的关键基础。我们将深入讨论数据质量评估、自动化清洗流程和质量监控体系。

在未来等你的专栏 1715

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PHPExcel类导出excel表带图片

使用PHPExcel类导出excel表格数据,表中带图片导出 /** * * 导出Excel */ public function export(){//导出Excel $data = Db::name('test')->select(); // 查询出来的数据 import('PHPExcel.PHPExcel', EXTEND_PATH); $objPHPExcel = new \PHPExce

从兄的博客 420

python数据处理7: matplotlib绘图保存图片深入

matplotlib绘图保存图片深入

银河漫游者 921

使用EasyPOI导出Excel模板数据含图片博文源码:轻松实现高效Excel数据处理

使用EasyPOI导出Excel模板数据含图片博文源码:轻松实现高效Excel数据处理 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在当今信息时代,数据处理能力对于工作效率的提升至关重要。本文将为您介绍一款实用的开源项目——使用EasyPOI导出Excel模板数据(含图片)博文源码。该项目旨在帮助开发者快速掌握EasyPOI框架,实现高效地导出含有图片的Excel模...

gitblog_06796的博客 892

excel数据处理一:巧妙使用openpyxl提取、筛选数据

目前openpyxl只支持[.xlsx / .xlsm / .xltx / .xltm]格式的文件,有人说,openpyxl是最好用的excel数据处理插件,这个excel的数据处理插件确实相当可以。主要是它的操作简单、并且处理数据的方式更容易理解。 【阅读全文】 openpyxl 官网地址 https://openpyxl.readthedocs.io/en/stable/ 在openpyxl的excel数据处理中,一个单元格对象使用cell表示,每一行数据称之为row,每一列数据称之为column。e

梦在硅谷的博客 7809

ArcGis地图图片格式转换工具:轻松转换地图图片格式,提升数据处理效率

ArcGis地图图片格式转换工具:轻松转换地图图片格式,提升数据处理效率 去发现同类优质开源项目:https://gitcode.com/ 地图数据在地理信息系统(GIS)中扮演着核心角色。格式正确、质量上乘的地图图片对于地理分析和决策制定至关重要。今天,我们为您推荐一款开源工具——ArcGis地图图片格式转换工具,它能帮助您高效处理地图数据。 项目介绍 ArcGis地图图片格式转换工具是一种利用...

gitblog_06721的博客 1137

java 读取excel_数据处理之带图片Excel数据处理解惑

小编最近项目中遇到一个大批量Excel数据提取的问题,因为Excel数据中含有图片,所以在程序处理时遇到了困难,小编花了点时间才解决了这个问题,所以在这里mark一下。1 问题描述首先来描述一下数据处理的需求,如下图所以是给定Excel表的数据结构(非项目数据,自己构造),数据包括人的照片、身份证号、生日等信息,数据处理的需求是将Excel中的图片提取出来并命名为对应身份证号码保存。2 pytho...

weixin_39987313的博客 1538

opencv 读取图片 图片数据处理 笔记

1. python中各类图片读取工具的比较 参考Python各类图像库的图片读写方式总结可知,opencv的性能表现最好。opencv yyds 2. opencv常用函数 2.1 读取图片 cv2.imread(filename, flags) 参数解释 filename:图片的完整路径 flags:标志位,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED} cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alph

雪的期许 3687

导出Excel多个单元格合并及图片插入攻略:高效解决Excel数据处理难题

导出Excel多个单元格合并及图片插入攻略:高效解决Excel数据处理难题 去发现同类优质开源项目:https://gitcode.com/ 在当今信息化的时代,Excel作为数据处理的常用工具,其功能的灵活运用显得尤为重要。本文将为您详细介绍一个开源项目——导出Excel多个单元格合并及图片插入攻略,该项目专注于解决Excel导出过程中单元格合并和图片插入的两大难题。 项目介绍 导出Excel多...

gitblog_06780的博客 312

PHP数据处理之下载远程图片到本地

一、场景二、猜想三、验证猜想1、F12尝试查看图片地址2、那我们就查看是不是在网络数据中3、验证其它页面数据是否同理4、图片地址四、代码思路五、实现代码六、结果代码在命令行执行打印截图文件夹效果图.jpg七、其他 一、场景 有这么一个地址https://book.yunzhan365.com/yngc/gmhg/mobile/index.html?from=groupmessage&isappinstalled=0,页面如下: 二、猜想 1、大家可以看到这个页面类似一张图片,应该是有图片地.

夏已微凉、 839

CV笔记:图片数据处理

人群计数数据处理

xieocean的博客 1456
上一篇: OpenGL实验二:绘制二维图形
下一篇: 【数据处理】:(二)文本类
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值