《R语言与农业数据统计分析及建模》学习——数字图像处理

        数字图像处理(digital  image processing)又称计算机图像处理,它是指将图像信号转换成数字信号并利用数字图像处理计算机对其进行处理的过程。

        常见的数字图像处理是通过计算机对图像进行去除噪声增强复原分割提取特征等处理。

        R语言中使用EBImage图像处理包:能够在R语言环境下进行信号处理、统计建模、机器学习和图像数据可视化。

# 安装EBIamge包

install.packages("BiocManager")

BiocManager::install("EBImage")

1、图像的读入与显示

        把图片放入工作路径,使用system.file函数读入。

# 载入EBImage包
library(EBImage)
# 读入图像
f<-system.file("images","sample-color.png",package='EBImage')
# 查看图像
img<-readImage(f)
display(img)
# 查看直方图
hist(img)

2、图像的三基色

        图片实际上是由RGB三个通道混合而成的,每个通道都反映着各自的颜色信息。

        channel函数:用于处理图像颜色空间通道之间的转换。

# 查看R单通道
img_r<-channel(img,"R")
display(img_r)
# 查看G单通道
img_g<-channel(img,"G")
display(img_g)
# 查看B单通道
img_b<-channel(img,"B")
display(img_b)

3、图像的灰度图

        EBImage包中使用统一的1/3RGB权重将彩色图像转换为灰度图像。公式如下:

0.2126\times R+0.7152\times G+0.0722\times B

# 生成灰度图
img_gray<-channel(img,"gray")
# 显示灰度图
display(img_gray)
# 灰度直方图
hist(img_gray)

4、图像的四则运算

        图像是以矩阵或者数组的形式存储的,对其进行加减乘除数学运算,可以实现图像亮度的增强与减弱。

# 加载EBImage包
library("EBIamge")
# 读入图像
f<-system.file("images","sample-color.png",package="EBImage")
img<-readImage(f)
# 四则运算
display(img+0.5)
display(img-0.5)
display(img*0.5)
display(img/0.5)

5、图像的反色与乘方

        通过1-图像,实现图像反色处理,在有些时候可以有效的提取图像的信息。

        图像的乘方操作会使数值小的像素点变得更小最后趋于0,而本身为1的白像素点保持不变。

# display(1-img)

# 乘方

display(img^4)

display(img^0.05)

6、图像的合并与差分

        通过两张图像的加减可以实现图像的合并与差分。效果展示如下:

7、裁剪、缩放、平移

        EBImage包中提供了translate、resize、rotate等函数来实现图像的平移、尺寸缩放、旋转、平移等操作。

# 图像裁剪
img_crop<-img[366:768,58:512,1:3]
display(img_crop)
# 图像缩放
img_re<-resize(img,w=128,h=85)
display(img_re)
# 图像平移
img_translate<-translate(img,c(100,-50))
display(img_translate)
# 图像旋转
img_rotate<-rotate(img,30,bg.col="yellow")
display(img_rotate)
# 图像转置
img_t<-transpose(img)
display(img_t)
# 图像沿y轴反转
img_flip<-flip(img)
display(img_flip)
# 图像沿x轴反转
img_flop<-flop(img)
display(img_flop)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

QT上位机的学习

后面又该找工作了&#xff0c;这块的内容也需要好好学习&#xff01; QT 篇 QT上位机串口编程-CSDN博客 (1)可以通过安装虚拟串口来模拟串口通信的情况 发现我之前安装过&#xff08;9.0): 可以生成虚拟串口&#xff0c;无需实际硬件串口就可以实现同一台电脑上串口模拟通信…

电路笔记 : 电容电阻大小表示(103、104、151、2R5、R15的含义)

电容电阻大小表示 电阻 数字索位标称法 数字索位标称法就是在电阻体上用三位数字来标明其阻值。它的第一位和第二位为有效数字&#xff0c;第三位表示在有效数字后面所加“0”的个数.这一位不会出现字母。如果阻值是小数.则用“R”表示“小数点”.并占用一位有效数字&#xf…

【51单片机普中板子74LS138+245+573可调时钟整点蜂鸣中级应用】2022-12-7

缘由用51单片机普中开发板实现数字时钟-嵌入式-CSDN问答 #include "reg52.h" //定义按键 sbit key0P3^0; sbit key1P3^1; sbit key2P3^2; sbit key3P3^3; //定义数码管位驱运位 sbit L1P2^2; sbit L2P2^3; sbit L3P2^4; sbit beepP2^5; unsigned char code ShuMaGua…

微调Mistral 7B以实现命名实体识别 (NER)

文章来源&#xff1a;fine-tuning-mistral-7b-for-named-entity-recognition-ner 2024 年 4 月 19 日 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;命名实体识别&#xff08;NER&#xff09;被认为是一项关键任务&#xff0c;应用范围广泛&#xff0c;包括信息…

tensorflow报错

参考 TensorFlow binary is optimized to use available CPU instructions in performance-critical operations._this tensorflow binary is optimized to use availab-CSDN博客 解决Python中cuBLAS插件无法注册问题_unable to register cudnn factory: attempting to re-CS…

SQL数据库

一.什么是数据库 数据库&#xff1a;存储数据的仓库&#xff0c;数据是有组织的进行存储。&#xff08;database 简称DB&#xff09; 数据库管理系统&#xff1a;管理数据库的大型软禁&#xff08;DataBase Management System 简称DBMS&#xff09; SQL&#xff1a;操作关系…

【MySQL 5.7安装时候 出现2503报错,解决方案】

MySQL5.7 安装遇 2503问题如何解决 1.能正常安装就点这里2.出现2503问题就看这2.1先看问题2.1.1在官网下载好安装包后&#xff0c;首先先确认安装包是否完整&#xff0c;排除安装包损坏的问题2.1.2 安装时候出现这个2503问题 2.2上解决方案2.2.1 打开任务管理器2.2.2 解决 1.能…

「C/C++ 01」volatile关键字 和 修改const修饰的变量

目录 一、修改const修饰的局部变量 二、无法修改const修饰的全局变量 三、volatile关键字 面试题】 一、修改const修饰的局部变量 可以通过指针和强转来修改const修饰的局部变量。 #include <iostream> using namespace std;int main(void) {const int a 1;int* pa (in…

hive表基本语法

hive表基本语法 青少年是一个美好而又是一去不可再得的时期 是将来一切光明和幸福的开端 目录 hive表基本语法 1.ROW FORMAT用法 2.LOCATION用法 3.EXTERNAL用法 &#xff08;外部表&#xff09; 4.STORED AS 用法&#xff1a;设置数据存储格式 5.TBLPROPERTIES 用法 6.P…

.位运算.

本题涉及到计算机组成与原理的相关知识 找了一篇相当不错的讲解&#xff0c;大家可以借鉴&#xff1a;位运算&#xff1a;按位与、按位或、按位异或、按位左移、按位右移-CSDN博客 给定一个长度为 n&#x1d45b; 的数列&#xff0c;请你求出数列中每个数的二进制表示中 11 的…

设计模式: 工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型…

网络架构建模:一个云案例研究-文章翻译

网络架构建模:一个云案例研究 摘要 互联网支持广泛服务的能力取决于网络架构以及未来网络所需的理论和实践创新。本文中的网络体系结构指的是计算机网络系统的结构及其物理组件、配置和通信协议之间的交互。多年来,人们对网络架构进行了各种各样的描述,其中有大量的表面图…

ICode国际青少年编程竞赛- Python-1级训练场-基本操作

ICode国际青少年编程竞赛- Python-1级训练场-基本操作 1、 Dev.step(3)2、 Dev.step(1)3、 Dev.step(7)4、 Dev.step(-1)5、 Dev.step(-5)6、 Dev.step(3) Dev.step(-8)7、 Dev.turnRight() Dev.step(1)8、 Dev.turnLeft() Dev.step(1)9、 Dev.step(4) Dev.tur…

Linux下top命令指标说明

目录 Linux下top命令指标说明1. 概览2. CPU利用率3. 内存利用率4. 进程信息 Linux下top命令指标说明 在Linux系统中&#xff0c;top 命令是一个用于实时监视系统运行状态的工具。通过 top 命令&#xff0c;我们可以了解系统的负载情况、CPU利用率、内存使用情况以及各个进程的…

免费开源语音克隆-GPT-SoVITS-WebUI只需 5 秒的声音样本

语音克隆-GPT-SoVITS-WebUI 强大的少样本语音转换与语音合成Web用户界面。 功能&#xff1a; 零样本文本到语音&#xff08;TTS&#xff09;&#xff1a; 输入 5 秒的声音样本&#xff0c;即刻体验文本到语音转换。 少样本 TTS&#xff1a; 仅需 1 分钟的训练数据即可微调模型…

Matlab|二阶锥松弛在配电网最优潮流计算中的应用

目录 一、主要内容 二、部分代码 三、程序代码 四、下载链接 一、主要内容 最优潮流计算是电网规划、优化运行的重要基础。首先建立了配电网全天有功损耗最小化的最优潮流计算模型&#xff1b;其次结合辐射型配电网潮流特点建立支路潮流约束&#xff0c;并考虑配电网中的可…

夸克网盘批量转存分享查询软件

夸克网盘批量转存分享软件&#xff0c;未解决批量转存困难问题以及批量分享困难问题&#xff0c;故研发此软件&#xff0c;无任何广告。 支持功能 夸克文件目录查询 自定义分页页码&#xff0c;分页数量 批量转存夸克文件 批量分享夸克文件 自定义导入夸克链接 使用教程…

四川景源畅信:抖音小店怎么运营?

在信息爆炸的今天&#xff0c;抖音小店凭借其便捷的操作和庞大的用户基础&#xff0c;成为了众多创业者和品牌商的新宠。如何运营好一个抖音小店&#xff0c;成为了许多商家亟待解决的问题。接下来&#xff0c;我们将从四个不同的方面&#xff0c;深入探讨抖音小店的运营之道。…

Android14之解决报错:libncurses.so.5与libtinfo.so.5缺少问题(二百零九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

linux实验小结

题目&#xff1a; 添加一个用户 loutest&#xff0c;使用 sudo 创建文件 /opt/forloutest&#xff0c;设置成用户 loutest 可以读写。截图 并把操作过程写入实验报告。 提示:如何创建一个文件呢?可以考虑 touch 命令&#xff0c;执 行 sudo touch /opt/forloutest 这个命令可…