图像处理(二)

图像处理(2)

  • 裁剪图片

from skimage import io,dataiimg = io.imread(r'D:\工坊\图像处理\十个勤天2.png')roi=iimg[50:150,120:200,:]io.imshow(roi)

运行结果:

  • 将图片进行二值化

from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")img_gray=color.rgb2gray(img)rows,cols=img_gray.shapefor i in range(rows):for j in range(cols):if(img_gray[i,j]<=0.5):img_gray[i,j]=0else:img_gray[i,j]=1io.imshow(img_gray)

运行结果:

  • 图像归一化

        图像归一化是图像处理操作,在将图像的像素值范围缩放到特定的范围或标准化到特定的统计特征。

from skimage import io,dataimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")reddish = img[:, :, 0]> 170  #像素值大于170的位置为True,小于为Falseimg[reddish]=[0, 255, 0]  # [红,绿,蓝]三个通道io.imshow(img)print(img.dtype.name)

运行结果:

  •  图像归一化

        图像数据的归一化操作,将像素值线性缩放到指定范围内,加载图像数据,显示图像数据。

import numpy as npimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")normalized_img = (img-np.min(img))/(np.max(img)-np.min(img))io.imshow(img)print(img)

运行结果:

  • 查看图片是什么类型的图片(utf-8/float)

from skimage import io,dataimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")print(img.dtype.name)

运行代码:

  • 将utf-8的图片转为float(浮点型)

from skimage import data,img_as_floatimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")print(img.dtype.name)print(img)dst = img_as_float(img)print(dst.dtype.name)print(img)

运行结果:

  • 将图片分成三类,用默认颜色对三类进行着色

from skimage import io,data,colorimport numpy as npimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")gray = color.rgb2gray(img)rows,cols = gray.shapelabels = np.zeros([rows,cols])for i in range(rows):for j in range(cols):if(gray[i, j]<0.4):labels[i, j]=0elif(gray[i, j]<0.75):labels[i, j]=1else:labels[i, j]=2dst=color.label2rgb(labels)io.imshow(dst)

运行结果:

  • 将浮点型(float)转为utf-8

from skimage import img_as_ubyteimport numpy as npimg = np.array([0, 0.5, 1], dtype=float)print(img.dtype.name)dst=img_as_ubyte(img)print(dst.dtype.name)

运行结果:

  • 空间颜色的转换(方法一)

① Rgb转为gray

from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")gray=color.rgb2gray(img)io.imshow(gray)

运行结果:

② Rgb转为hsv

        • 什么是hsv:“H”代表色相(Hue)、“S”饱和度(Saturation)和“V”亮度(Value)
from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")hsv=color.rgb2hsv(img)io.imshow(hsv)

运行结果:

③ Rgb转lab

        • 什么是lab:lab图像格式通常指的是 CIELAB 色彩空间,也称为 Lab 色彩空间。包括三个通道:L(亮度)、a(从绿色到红色的颜色分量)和b(从蓝色到黄色的颜色分量)
from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")lab=color.rgb2lab(img)io.imshow(lab)

运行结果:

④ Gray转rgb

from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")rgb=color.gray2rgb(img)io.imshow(rgb)

运行结果:

⑤ Hsv转rgb

from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")rgb=color.hsv2rgb(img)io.imshow(rgb)

运行结果:

⑥ lab转rgb

from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")rgb=color.lab2rgb(img)io.imshow(rgb)

运行结果:

  • 空间颜色转换(方法二)

       • 方法一中的转换方式,在这个中只适用于rgb转hsv,其他的使用情况:

tospace` has to be one of dict_keys(['rgb', 'hsv', 'rgb cie', 'xyz', 'yuv', 'yiq', 'ypbpr', 'ycbcr', 'ydbdr'])

rgb转hsv:

from skimage import io,data,colorimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")hsv = color.convert_colorspace(img,'RGB','HSV')io.imshow(hsv)

运行结果:

  • 创建一个窗口,在窗口中对图片三种变换进行对比

        从skimage库中导入data,从matplotlib.pyplot库中导入plt,使用io.imread函数从指定路径加载名为"十个勤天2.png"的图像创建一个标题为'bocoma a fammer!'且大小为8x8英寸的图像窗口,在一个2x2的子图网格中创建四个子图,为四个子图命名为“fammer.a”、“fammer.b”、“fammer.c”和“fammer.d”,使用plt.show()显示绘图。

from skimage import dataimport matplotlib.pyplot as pltimg = io.imread(r"D:\工坊\图像处理\十个勤天2.png")plt.figure(num='bocoma a fammer!', figsize=(8, 8))plt.subplot(2, 2, 1)plt.title('fammer.a')plt.imshow(img)plt.subplot(2, 2, 2)plt.title('fammer.b')plt.imshow(img[:, :, 0], cmap=plt.cm.gray)plt.subplot(2, 2, 3)plt.title('fammer.c')plt.imshow(img[:, :, 1], cmap=plt.cm.gray)plt.subplot(2, 2, 4)plt.title('fammer.d')plt.imshow(img[:, :, 2], cmap=plt.cm.gray)plt.show()

运行结果:

  • 查看库中有几张图片

import skimage.io as iofrom skimage import data_dirstr=data_dir + '/*.png'coll = io.ImageCollection(str)print(len(coll))
  • 查看文件夹中的第二张图片

from skimage import data_dir,io,colordef convert_gray(f):rgb=io.imread(f)return color.rgb2gray(rgb)img=r"D:\工坊\图像处理"str=img+'/*.jpg'coll = io.ImageCollection(str)io.imshow(coll[1])# 自己文件夹里的图片

运行结果:

进行灰度处理:

from skimage import data_dir,io,colordef convert_gray(f):rgb=io.imread(f)return color.rgb2gray(rgb)img=r"D:\工坊\图像处理"str=img+'/*.jpg'coll = io.ImageCollection(str,load_func=convert_gray)io.imshow(coll[1])

运行结果:

  • 视频的处理

从一个视频文件中提取帧,并将每一帧保存为图片文件

import cv2from skimage import ioimport osclass AVILoader:def __init__(self, video_file):self.video_file = video_fileself.cap = cv2.VideoCapture(self.video_file)def __call__(self, frame):self.cap.set(cv2.CAP_PROP_POS_FRAMES, frame)ret, frame = self.cap.read()if ret:return cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)else:return Nonevideo_file = 'mymymyvideo.mp4'av_loader = AVILoader(video_file)frames = range(0, 1000, 10)output_folder = 'frames'os.makedirs(output_folder, exist_ok=True)# 保存每一帧为图像文件for frame in frames:img = av_loader(frame)if img is not None:filename = os.path.join(output_folder, f'frame_{frame}.jpg')io.imsave(filename, img)io.imshow(img)  # 显示图像io.show()       # 显示图像窗口# 创建图像集合ic = io.ImageCollection(os.path.join(output_folder, '*.jpg'))# 输出图像集合

运行结果:

  • 图片的转换

        把png图片全部转换为256x256的jpg的灰度图保存在文件夹下

from skimage import data_dir,io,transform,colorimport numpy as npdef convert_gray(f):rgb=io.imread(f) #依次读取rgb图片gray=color.rgb2gray(rgb) #将rgb图片转换成灰度图dst=transform.resize(gray,(256,256)) #将灰度图片大小转换为256*256return dstimg="C:/Users/lenovo/Desktop/sunnn"str=img+'/*.jpg'coll = io.ImageCollection(str,load_func=convert_gray)for i in range(len(coll)):io.imsave('C:/Users/lenovo/Desktop/sunnn/'+np.str(i)+'.png',coll[i]) #循环保存图片

运行代码:

运行结果:

 

 如果想要继续学习,请移步下一篇blog!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/7394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

影响项目成功的六个“致命”错误

项目经理作为项目的负责人&#xff0c;肩负着巨大的责任和挑战。他们需要具备专业知识、出色的综合管理能力以及敏锐的洞察力&#xff0c;以便在项目执行过程中及时关注项目动态&#xff0c;处理好各种问题&#xff0c;并避免那些可能影响项目实施的致命错误。 一、缺乏明确的…

基于Netty的websocket的简单介绍

1、websocket简介 「WebSocket」是一种在单个TCP连接上进行全双工通信的协议。 「WebSocket」使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在「WebSocket API」中&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两…

羊大师解析,鲜为人知的羊奶冷知识

羊大师解析&#xff0c;鲜为人知的羊奶冷知识 羊奶的脂肪球更小&#xff1a;相较于牛奶&#xff0c;羊奶中的脂肪球直径更小&#xff0c;这有助于其更快地被人体消化和吸收。 羊奶含有更多的中链脂肪酸&#xff1a;羊奶中含有较多的中链脂肪酸&#xff08;MCT&#xff09;&am…

5个好用AI绘画工具,让你秒变艺术家!

AI绘画现在可谓是相当火爆&#xff0c;各种AI绘画工具如雨后春笋般涌出。很多人想自己尝试用AI来创作&#xff0c;却不知道使用什么工具&#xff0c;今天就给大家分享5个好用AI绘画工具&#xff0c;有的只需一段文字便可生成一幅美轮美奂的大作&#xff0c;让你秒变艺术家&…

Spring Cloud Stream的作用和用法

Spring Cloud Stream是一个用于构建消息驱动型微服务的框架&#xff0c;它在Spring Cloud生态系统中扮演着关键角色。以下是关于Spring Cloud Stream的作用和用法的详细描述&#xff1a; 一、作用 简化消息中间件集成&#xff1a;Spring Cloud Stream旨在简化和统一消息中间件…

基于springboot实现的疫情网课管理系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven…

Implicit Diffusion Models for Continuous Super-Resolution

CVPR2023https://github.com/Ree1s/IDM问题引入&#xff1a; – LIIF方法可以实现任意分辨率的输出&#xff0c;但是因为是regression-based方法&#xff0c;所以得到的结果缺少细节&#xff0c;而生成的方法(gan-based,flow-based&#xff0c;diffusion-based等)可以生成细节&…

虚幻引擎中的投影技术主要用于创建多屏交互式内容和沉浸式显示环境

首先&#xff0c;在虚幻引擎&#xff08;UE4&#xff09;中&#xff0c;nDisplay插件是一个强大的工具&#xff0c;它允许开发者创建多屏投影系统。这种系统可以是由多个相邻的物理屏幕组成&#xff0c;例如Powerwall显示器&#xff0c;或者使用多个投影仪将3D环境投射到物理表…

oxford-iiit-pet 数据集

文章目录 项目说明数据集说明 oxford-iiit-pet 代码实现数据处理整理原始数据-分类划分 训练集和测试集 项目说明 数据集说明 oxford-iiit-pet 数据官方网站&#xff1a; https://www.robots.ox.ac.uk/~vgg/data/pets/ 下载 .torrent 文件&#xff0c;然后下载完整文件。 主要…

C# 继承和静态属性或方法

目录 继承&#xff1a; 静态属性和方法&#xff1a; 在子类中访问父类的静态属性和方法&#xff1a; 继承与静态属性或方法的关系&#xff1a; 注意&#xff1a; PS&#xff1a;如有错漏之处&#xff0c;敬请指正 在C#中&#xff0c;继承&#xff08;inheritance&#xf…

JavaScript基础(五)

三目运算符 用于判断并赋值 语法: 判断条件?条件成立执行语句:条件不成立执行语句; (条件&#xff1f;"true":"false";) 例: <script> var age prompt(请输入年龄) var name (age>18)?"已成年":"未成年禁止登录" a…

开源投票系统源码及搭建 在线投票活动创建系统的设计与开发

在当今数字化时代&#xff0c;在线投票活动已成为各类组织、企业和个人不可或缺的一部分。无论是选举、问卷调查、产品评选还是其他需要收集公众意见的场景&#xff0c;一个高效、稳定且易于使用的在线投票系统都至关重要。 分享一款基于开源投票系统源码的在线投票活动创建系…

uniapp从数组中删除重复项

在 UniApp&#xff08;或任何使用 JavaScript 的环境中&#xff09;从数组中删除重复项&#xff0c;你可以使用多种方法。以下是一些常见的方法&#xff1a; 1. 使用 filter() 和 indexOf() 你可以使用 Array.prototype.filter() 方法结合 Array.prototype.indexOf() 方法来创…

【网络知识】光猫、路由器 和 交换机 的作用和区别?

数字信号&#xff1a;是指自变量是离散的、因变量也是离散的信号&#xff0c;这种信号的自变量用整数表示&#xff0c;因变量用有限数字中的一个数字来表示。在计算机中&#xff0c;数字信号的大小常用有限位的二进制数表示。 模拟信号&#xff1a;模拟信号是指用连续变化的物…

偏微分方程算法之混合边界条件下的差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们在前几节中介绍了Poisson方程的边值问题&#xff0c;接下来对椭圆型偏微分方程的混合边值问题进行探讨&#xff0c;研究对象为&#xff1a; 其中&#xff0c;为矩形区域&#xff0c;为上的连续函数…

巴东电子商务奖励标准!巴东县网红直播基地、电子商务示范企业奖励补贴

巴东电子商务奖励标准&#xff01;巴东县网红直播基地、电子商务示范企业奖励补贴的内容整理如下&#xff1a;奖励内容较多 查找想了解的奖励可按 CtrlF 然后输入关键词即可 巴东县电子商务发展专项资金支持对象 本项目奖补对象适用于在我县注册、纳税、从事电子商务的商贸类企…

ISIS的基本概念

1.ISIS概述 IS-IS是一种链路状态路由协议&#xff0c;IS-IS与OSPF在许多方面非常相似&#xff0c; 例如运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此&#xff0c;然后建立邻接关系&#xff0c;并交互链路状态信息。 CLNS由以下三个部分组成&#xff1a; CLNP&#xf…

民航无人机证书的含金量

民航无人机证书&#xff0c;尤其是由中国民用航空局飞行标准司直接签发的CAAC无人机执照&#xff0c;具有很高的含金量。 这种驾照是由国家权威机构颁发的&#xff0c;具有很高的权威性&#xff0c;是合法操控无人机的重要依据。 持有CAAC无人机执照的从业人员可以从事无人机相…

VALSE 2024特邀报告内容解析|多模态视觉融合方法:是否存在性能极限?

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…

No space left on device

报错提示 [ERROR] Upload Local File hwzt-third-party-out.jar Failed [ERROR] java.lang.RuntimeException: cp: error writing : No space left on device [ERROR] com.alibabacloud.commons.ssh.sshj.SshjConnection.executeCustomCharset(SshjConnection.java:172) …