(数字图像处理MATLAB+Python)第三章图像基本运算-第二节:图像代数运算

news2025/6/19 6:06:26

文章目录

  • 一:图像算数运算
    • (1)加法运算
      • A:概述
      • B:程序
    • (2)减法运算
      • A:概述
      • B:程序
    • (3)乘法运算
      • A:概述
      • B:程序
    • (4)除法运算
      • A:概述
      • B:程序
  • 二:图像逻辑运算
    • (1)概述
    • (2)程序

一:图像算数运算

(1)加法运算

A:概述

加法运算:指将两幅同大小的图像进行像素级别的加法操作,得到一幅新的图像。设两幅图像对应的像素值分别为 f 1 ( x , y ) f_{1}(x,y) f1(x,y) f 2 ( x , y ) f_{2}(x,y) f2(x,y),则它们的加法运算可表示为

g ( x , y ) = f 1 ( x , y ) + f 2 ( x , y ) g(x,y)=f_{1}(x,y) + f_{2}(x,y) g(x,y)=f1(x,y)+f2(x,y)

进行图像加法运算时,处理和值的方式主要有以下几种

  • 截断处理:当两幅图像的对应像素值相加结果超出图像灰度级的最大值时,将结果强制截断为最大灰度级,例如在8位灰度图像中,最大值为255
  • 加权求和:不同位置的像素值不仅仅是简单地相加,还需要根据不同位置的权重进行加权,以便更好地满足具体的应用需求
  • 缩放处理:将两幅图像的对应像素值相加结果缩放到指定的灰度级范围内,例如在8位灰度图像中,将结果除以一个因子,使其不超过255
  • 溢出处理:当两幅图像的对应像素值相加结果超出图像灰度级的最大值时,将结果自动溢出到下一级别,例如在8位灰度图像中,溢出到9级时,像素值为0,溢出到10级时,像素值为1,以此类推
  • 饱和度处理:当两幅图像的对应像素值相加结果超出图像灰度级的最大值时,将结果设定为最大值。这种处理方式也被称为上溢出处理,而下溢出处理则将结果设定为0

在这里插入图片描述

图像加法运算主要应用如下

  • 图像增强:通过将一幅图像与一幅较亮或较暗的图像相加,可以增强图像的对比度和亮度,使其更加清晰明亮
  • 图像融合:将两幅不同角度或不同波段的图像进行加权和处理,可以得到一幅融合后的图像,用于提高图像的质量和信息量
  • 目标检测:将不同尺度或不同方向的图像进行加权和处理,可以得到一幅新的图像,用于检测目标的位置和形状
  • 噪声去除:通过将一幅图像与一幅平滑或模糊的图像相加,可以抑制图像中的噪声,提高图像的信噪比
  • 彩色图像生成:将不同波段的灰度图像进行加权和处理,可以得到一幅新的彩色图像,用于彩色图像的生成和处理

B:程序

MATLAB实现:相关函数如下,具体解释可看MATLAB帮助手册

imadd(X,Y)函数:是MATLAB中用于执行图像加法运算的函数

  • AB是两幅需要相加的图像,它们可以是灰度图像、RGB图像或二值图像
  • 除此之外,imadd()函数还可以通过添加一些可选参数来控制图像加法运算的处理方式。以下是其中一些常用的可选参数
    • scaling:用于控制图像加法运算的缩放方式,可选值有uint8uint16singledouble。默认值为uint8
    • outputtype:用于指定输出图像的数据类型,可选值包括与输入图像类型相同的类型,默认值与输入图像类型相同
    • fillvalues:用于指定当相加结果超出图像灰度级范围时,如何填充超出范围的像素值
      • bound:截断处理(默认)
      • nearest:最近邻差值
      • samesize:将超出范围的像素值设为输入图像的最大值
    • uint16:用于将输出图像的数据类型指定为16位无符号整型,可用于处理高动态范围图像

实现如下效果

在这里插入图片描述

Back = imread('desert.jpg');
Foreground = imread('car.jpg');

result1 = imadd(Foreground,-100);
result2 = imadd(Back, Foreground);
result3 = imadd(Back, result1);

subplot(221),imshow(Foreground),title('原目标图');
subplot(222),imshow(result1),title('原目标图加标量');
subplot(223),imshow(result2),title('原目标图加背景');
subplot(224),imshow(result3),title('加标量图叠加背景');

Python实现:使用Python实现上述同样的功能

cv2.add(src1, src2[, dst[, mask[, dtype]]])函数:该函数将每个像素的值相加,并将结果存储在输出图像中。如果相加的结果大于输出图像的数据类型所能表示的最大值,则该像素的值将被截断,并存储为最大值。如果输出图像的数据类型为无符号整数类型,则任何小于0的像素值都会被截断为0。如果输出图像的数据类型为有符号整数类型,则任何大于最大值的像素值都会被截断为最大值

  • src1:第一个输入图像。
  • src2:第二个输入图像。
  • dst:输出图像,它的大小和类型与输入图像相同,或者可以为None
  • mask:一个可选的掩膜图像,它必须与输入图像具有相同的尺寸,或者可以为None
  • dtype:输出图像的数据类型,如果没有指定,则默认为src1.dtype
import cv2
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

Back = cv2.imread('desert.jpg')
Foreground = cv2.imread('car.jpg')

result1 = cv2.add(Foreground, -100)
result2 = cv2.add(Back, Foreground)
result3 = cv2.add(Back, result1)

plt.subplot(221), plt.imshow(cv2.cvtColor(Foreground, cv2.COLOR_BGR2RGB)), plt.title('原目标图')
plt.subplot(222), plt.imshow(cv2.cvtColor(result1, cv2.COLOR_BGR2RGB)), plt.title('原目标图加标量')
plt.subplot(223), plt.imshow(cv2.cvtColor(result2, cv2.COLOR_BGR2RGB)), plt.title('原目标图加背景')
plt.subplot(224), plt.imshow(cv2.cvtColor(result3, cv2.COLOR_BGR2RGB)), plt.title('加标量图叠加背景')
plt.show()

在这里插入图片描述

(2)减法运算

A:概述

减法运算:指将两幅同大小的图像进行像素级别的加法操作,得到一幅新的图像。设两幅图像对应的像素值分别为 f 1 ( x , y ) f_{1}(x,y) f1(x,y) f 2 ( x , y ) f_{2}(x,y) f2(x,y),则它们的减法运算可表示为

g ( x , y ) = f 1 ( x , y ) − f 2 ( x , y ) g(x,y)=f_{1}(x,y) - f_{2}(x,y) g(x,y)=f1(x,y)f2(x,y)

进行图像加法运算时,处理和值的方式主要有以下几种

  • 截断处理:将两幅图像对应像素点的灰度值相减后,如果差值超过了一定的阈值,就将其截断为该阈值,否则保留原值作为差值结果
  • 取绝对值:将两幅图像对应像素点的灰度值相减,再取绝对值作为两幅图像差值的结果。该方法简单易实现,但容易受到图像亮度和对比度的影响,对灰度变化较大的图像效果不佳
  • 平方差值:将两幅图像对应像素点的灰度值相减后取平方,再将所有差值求和并开方,作为两幅图像差值的结果。该方法能够有效地消除灰度变化对结果的影响,但会放大灰度变化较大的区域,从而影响差值的准确性
  • 加权平方差值:为了平衡两种方法的缺点,可以使用加权平方差值法,即将每个像素点的差值乘以一个权重系数后再求和并开方。常用的权重系数包括高斯函数、均匀分布函数等,能够有效地消除灰度变化对结果的影响,同时避免了平方差值法放大灰度变化较大的区域的缺点

在这里插入图片描述

图像减法运算主要应用如下

  • 目标检测:将背景图像与包含目标的图像相减,得到只有目标区域的差异图像,可以通过差异图像进行目标检测和识别
  • 图像增强:将图像的低频分量与高频分量分离,去除低频分量得到的高频图像与原图像相减,可以增强图像的边缘和细节
  • 背景消除:在视频处理中,通过将当前帧图像与前一帧图像相减,得到差异图像,可以用于背景消除和移动物体的跟踪
  • 纹理分析:在纹理分析中,将一幅图像与其经过旋转或缩放等变换后的图像相减,可以得到只包含纹理信息的图像,用于纹理分类和分析
  • 形态学处理:在形态学处理中,将图像进行二值化处理后,将原图像与腐蚀、膨胀等形态学操作的结果图像相减,可以得到形态学处理后的图像

B:程序

MATLAB实现:相关函数如下,具体解释可看MATLAB帮助手册

imsubtract函数:是MATLAB中用于计算两幅图像之间像素值差异的函数。它可以用来减去一个图像中的像素值,以及两幅图像中对应像素之间的差异

  • 输入参数I1I2表示需要计算差异的两幅图像,它们可以是灰度图像或彩色图像。输出参数J是计算得到的结果图像,它的大小和类型与输入图像相同
  • 可选参数'uint8''intensity'用于指定输出结果的数据类型,可以是uint8double类型。如果省略这个参数,imsubtract函数会默认使用与输入图像相同的数据类型
J = imsubtract(I1, I2);
J = imsubtract(I1, I2, 'uint8');
J = imsubtract(I1, I2, 'intensity');

imabsdiff函数:是MATLAB中用于计算两幅图像之间像素值绝对差异的函数。它可以用来计算两幅图像中对应像素之间的绝对差异。该函数没有可选参数


实现如下效果
在这里插入图片描述

Back=imread('hallback.bmp');
Foreground=imread('hallforeground.bmp');
result = imabsdiff(Foreground,Back);
subplot(131),imshow(Back),title('背景');
subplot(132),imshow(Foreground),title('前景图');
subplot(133),imshow(result),title('图像相减');

Python实现:使用Python实现上述同样的功能

cv2.absdiff(src1, src2[, dst])函数:是OpenCV中用于计算两个图像差异的函数

  • src1:第一个输入图像,可以是单通道或多通道图像,数据类型为numpy数组
  • src2:第二个输入图像,与src1有相同的尺寸和数据类型,可以是单通道或多通道图像,数据类型为numpy数组
  • dst:可选参数,输出图像,与输入图像有相同的尺寸和数据类型,数据类型为numpy数组。如果没有指定,则会创建一个与src1src2有相同尺寸和数据类型的数组作为输出
import cv2
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

# 读取背景和前景图像
Back = cv2.imread('hallback.bmp')
Foreground = cv2.imread('hallforeground.bmp')

# 计算前景图像和背景图像的像素绝对差值
result = cv2.absdiff(Foreground, Back)

# 使用matplotlib展示结果图像
plt.subplot(1, 3, 1)
plt.imshow(cv2.cvtColor(Back, cv2.COLOR_BGR2RGB))
plt.title('背景')

plt.subplot(1, 3, 2)
plt.imshow(cv2.cvtColor(Foreground, cv2.COLOR_BGR2RGB))
plt.title('前景图')

plt.subplot(1, 3, 3)
plt.imshow(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))
plt.title('图像相减')

plt.show()

在这里插入图片描述

(3)乘法运算

A:概述

加法运算:是一种逐像素进行的二元运算。它将两个输入图像中对应像素的像素值相乘,得到一个新的输出图像。设两幅图像对应的像素值分别为 f 1 ( x , y ) f_{1}(x,y) f1(x,y) f 2 ( x , y ) f_{2}(x,y) f2(x,y),则它们的乘法运算可表示为

g ( x , y ) = f 1 ( x , y ) × f 2 ( x , y ) g(x,y)=f_{1}(x,y) × f_{2}(x,y) g(x,y)=f1(x,y)×f2(x,y)

图像乘法运算主要应用如下

  • 图像增强:图像乘法运算可以用来增强图像的对比度和亮度。例如,将一个图像和一个高亮度的常数图像相乘,可以使图像中较暗的区域变得更加明亮
  • 图像合成:图像乘法运算可以用来将两个图像合成成一个图像。例如,将一个图像和一个掩模图像相乘,可以将掩模中非零区域对应的像素从原图像中抠出来,生成一个新的合成图像
  • 模糊处理:图像乘法运算可以用来进行模糊处理。例如,将一个图像和一个低通滤波器的频率响应相乘,可以将图像中高频部分去除,从而实现模糊效果
  • 频谱分析:图像乘法运算可以用来进行频谱分析。例如,将一个图像和一个频率响应为单位圆的高通滤波器相乘,可以提取出图像中高频部分的信息,从而实现高通滤波效果
  • 噪声去除:图像乘法运算可以用来去除图像中的噪声。例如,将一个图像和一个频率响应为单位圆的低通滤波器相乘,可以将图像中高频部分去除,从而去除噪声

B:程序

MATLAB实现:相关函数如下,具体解释可看MATLAB帮助手册

immultiply(A,B,class)函数:

  • AB分别是输入的两幅图像
  • class:用于指定输出图像的数据类型
    • uint8:8位无符号整型
    • uint16:16位无符号整型
    • int16:16位有符号整型
    • single:单精度浮点型
    • double:双精度浮点型

实现如下效果
在这里插入图片描述

Back=im2double(imread('bird.jpg'));
Templet=im2double(imread('birdtemplet.bmp'));
result = immultiply(Templet,Back);
subplot(131),imshow(Back),title('背景');
subplot(132),imshow(Templet),title('模板');
subplot(133),imshow(result),title('图像相乘');

Python实现:使用Python实现上述同样的功能

csv2.multiply函数:对输入的两个数组进行逐元素相乘,然后将结果写入输出数组中。在相乘过程中,如果元素的结果值超出了输出数组数据类型的表示范围,则结果将被截断。如果指定了缩放参数scale,则结果将被缩放到可接受的数据类型范围内。如果输出数组的数据类型未指定,则输出数组的数据类型与输入数组相同

  • src1:第一个数组,必须是单通道或多通道数组,数据类型为浮点型或整型。
  • src2:第二个数组,与第一个数组的形状和数据类型必须相同。
  • dst:输出数组,形状和数据类型与输入数组相同。
  • scale:可选参数,用于对结果进行缩放的标量值。默认值为1,即不进行缩放。
  • dtype:可选参数,输出数组的数据类型。如果未指定,则输出数组的数据类型与输入数组相同
import cv2
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

# 读取背景和模板图片
Back = cv2.imread('bird.jpg').astype(np.float32) / 255.0
Templet = cv2.imread('birdtemplet.bmp').astype(np.float32) / 255.0

# 计算图像相乘
result = cv2.multiply(Templet, Back)

# 展示结果
fig, ax = plt.subplots(1, 3, figsize=(12, 4))
ax[0].imshow(cv2.cvtColor(Back, cv2.COLOR_BGR2RGB))
ax[0].set_title('背景')
ax[1].imshow(cv2.cvtColor(Templet, cv2.COLOR_BGR2RGB))
ax[1].set_title('模板')
ax[2].imshow(cv2.cvtColor(result, cv2.COLOR_BGR2RGB))
ax[2].set_title('图像相乘')
plt.show()

在这里插入图片描述

(4)除法运算

A:概述

除法运算:是指将一个图像的每个像素值除以另一个图像的相应像素值,从而生成一个新的图像。则它们的除法运算可表示为

g ( x , y ) = f 1 ( x , y ) ÷ f 2 ( x , y ) g(x,y)=f_{1}(x,y) ÷ f_{2}(x,y) g(x,y)=f1(x,y)÷f2(x,y)

图像除法运算在某些应用中确实比加法、减法和乘法运算应用得少一些,但在某些特定情况下,它也是很有用。在某些图像处理应用中,图像除法可以用来纠正图像的光照不均匀性或颜色失真等问题。例如,在医学图像处理中,可以使用背景图像对包含目标的图像进行除法运算,以消除照明变化或其他干扰。此外,图像除法还可以用于图像对比度增强。在对比度增强的应用中,图像除法可以用来增强图像中的高频细节,例如边缘和纹理。通过将图像除以其平滑版本,可以增强高频信息,并使边缘和纹理更加明显

B:程序

MATLAB实现:相关函数如下,具体解释可看MATLAB帮助手册

imdivide(A,B,options)函数:是MATLAB中的一个图像处理函数

  • AB是两个输入的图像矩阵。需要注意的是,如果B中某个像素的值为0,则对应的像素在输出图像C中的值将为Inf(无穷大)。此外,如果输入矩阵包含浮点数,则输出矩阵也将是浮点数,否则输出矩阵将与输入矩阵具有相同的数据类型
  • options结构体包含以下字段
    • RoundingMethod:取值可以为'floor'(向下取整,默认值)、'ceil'(向上取整)、'fix'(取整数部分)、'round'(四舍五入),指定除法运算时的舍入方式。
    • NaNBehavior:取值可以为'omit'(省略NaN,默认值)或'replace'(用0代替NaN),指定如何处理B中包含NaN的情况

Python实现:使用Python实现上述同样的功能。需要注意的是,c2.divide函数不支持指定舍入方式或者NaN的处理方式。如果需要实现这些功能,需要手动编写代码实现

cv2.divide(src1, src2, dst=None, scale=1)函数:

  • src1src2是输入的两个图像
  • scale参数是一个标量,表示除以src2的缩放因子,默认值为1

二:图像逻辑运算

(1)概述

逻辑运算:在数字图像处理中,逻辑运算指的是使用逻辑运算将两个或更多的图像组合起来的操作。这些操作也被称为位操作,因为它们对图像中每个像素的各个位进行操作。数字图像处理中常用的逻辑运算包括

  • 与运算(AND):在这个操作中,两个输入图像中的相应像素被比较。如果两个像素都是非零(数值为1),输出像素被设置为1。否则,输出像素被设置为0(只要出现0结果就是0
  • 或运算(OR):在这个操作中,两个输入图像中的相应像素被比较。如果其中一个像素的值为1,则输出像素被设置为1。否则,输出像素被设置为0(只要出现1结果就是1
  • 异或运算(XOR):在这个操作中,两个输入图像中的相应像素被比较。如果像素有不同的值(一个像素是1,另一个是0),输出像素被设置为1。否则,输出像素被设置为0(0和任何数异或都是任何数,任何数与自己异或都是0
  • 取反运算(NOT):在这个操作中,输入图像中的每个像素都被反转。如果一个像素的值是1,它就被设置为0,反之亦然

(2)程序

MATLAB实现:相关函数如下,具体解释可看MATLAB帮助手册

  • C = bitcmp(A):按位求反
  • C = bitand(A,B):按位求与
  • C = bitor(A,B): 按位求或
  • C = bitxor(A,B):按位求异或

实现如下效果

在这里插入图片描述

Back=imread('bird.jpg');
Templet=imread('birdtemplet.bmp');
result1=bitcmp(Back);
result2=bitand(Templet,Back);
result3=bitor(Templet,Back);
result4=bitxor(Templet,Back);
figure;
subplot(121),imshow(Back),title('Back');
subplot(122),imshow(Templet),title('Templet');
figure;
subplot(221),imshow(result1),title('图像求反');
subplot(222),imshow(result2),title('图像相与');
subplot(223),imshow(result3),title('图像相或');
subplot(224),imshow(result4),title('图像异或');

Python实现:使用Python实现上述同样的功能

import cv2
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

Back = cv2.imread('bird.jpg')
Templet = cv2.imread('birdtemplet.bmp')


result1 = cv2.bitwise_not(Back)
result2 = cv2.bitwise_and(Templet, Back)
result3 = cv2.bitwise_or(Templet, Back)
result4 = cv2.bitwise_xor(Templet, Back)


plt.subplot(221), plt.imshow(result1), plt.title('图像求反')
plt.subplot(222), plt.imshow(result2), plt.title('图像相与')
plt.subplot(223), plt.imshow(result3), plt.title('图像相或')
plt.subplot(224), plt.imshow(result4), plt.title('图像异或')
plt.show()

在这里插入图片描述

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

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

相关文章

C++模板基础(九)

完美转发与 lambda 表达式模板 void f(int& input) {std::cout << "void f(int& input)\t" << input << \n; }void f(int&& input) {std::cout << "void f(int&& input)\t" << input << \n;…

MYSQL8窗口函数

MYSQL8窗口函数MYSQL8窗口函数窗口函数分类序号函数--排行榜row_number()示例rank()示例dense_rank()示例partition by对每个分区内的行进行排名不加partition by全局排序开窗聚合函数分布函数CUME_DIST()PERCENT_RANK()前后函数LAG()的用法LEAD()头尾函数其他函数NTH_VALUE()N…

用Abp实现两步验证(Two-Factor Authentication,2FA)登录(二):Vue网页端开发

文章目录发送验证码登录退出登录界面控件获取用户信息功能项目地址前端代码的框架采用vue.js elementUI 这套较为简单的方式实现&#xff0c;以及typescript语法更方便阅读。首先添加全局对象&#xff1a; loginForm: 登录表单对象 twoFactorData: 两步验证数据&#xff0c; …

跨平台应用开发进阶(五十九):uni-app实现视屏播放小窗功能

文章目录一、前言二、解决方案三、拓展阅读一、前言 在业务功能开发过程中&#xff0c;需要实现视频直播、播放小窗功能。鉴于目前通过接入火山webSDK实现视频直播、点播功能。需要火山协助配合改造实现小窗功能。 uni-app插件市场也提供了若干插件&#xff0c;经试用效果并不…

从二叉树的角度看快速排序

快速排序本质上可以看作二叉树的前序遍历 快速排序是先将一个元素排好序&#xff0c;然后再将剩下的元素排好序 核心思路依然是分治 快排整体思路 准确的可以说是治分 > 先治 得到分界点后 再分 治&#xff1a;双指针技巧&#xff08;左右指针或者快慢指针&#xff0c;…

【Docker】11、IDEA集成Docker插件实现一键部署SpringBoot项目

日常开发项目的过程中&#xff0c;我们每次需要部署线上的时候&#xff0c;都需要安装一大堆的运行环境&#xff0c;例如&#xff1a;JDK、MySQL、Redis 等&#xff0c;非常花费时间、我们可以使用 Docker 的容器技术&#xff0c;方便快捷地搭建项目启动所需要的运行环境&#…

【微服务笔记15】微服务组件之Config配置中心实现用户认证、配置属性加解密

这篇文章&#xff0c;主要介绍微服务组件之Config配置中心实现用户认证、配置属性加解密。 目录 一、用户认证 1.1、引入security依赖 1.2、服务端ConfigServer添加访问配置 1.3、客户端ConfigClient添加访问配置 二、配置属性加解密 2.1、对称加密 &#xff08;1&#…

逍遥自在学C语言 | 位运算符^的高级用法

前言 在上一篇文章中&#xff0c;我们介绍了|运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍^ 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 —— …

windows系统管理_文件系统授权规则

NTFS 权限规则 NFTS 权限有一些隐含规则&#xff0c;用户最终有效权限受这些规则的影响&#xff0c;了解并运用这些规则&#xff0c;才能 灵活的分配权限&#xff0c;符合实际需求。 1 权限的累加 如果在某个文件或文件夹的访问控制列表中为某个用户分配了操作权限&#xff…

猿辅导学员入选国家队,竞赛老师成为“最强辅助”

3月31日&#xff0c;国际数学奥林匹克竞赛&#xff08;IMO&#xff09;国家队名单正式出炉&#xff0c;猿辅导学员王淳稷、孙启傲分别以第一名和第二名的成绩位列其中&#xff0c;今年7月&#xff0c;他们将出征日本&#xff0c;代表中国参赛&#xff0c;为国争光。 自2020年以…

理解 与 计算 物联网产品的电池使用寿命

本文带你理解电池的容量以及教会你如何计算使用电池的产品的工作时长前言 在物联网领域&#xff0c;在保证产品性能的前提下&#xff0c;产品的功耗是做得越来越低&#xff0c;针对物联网领域的低功耗无线芯片的功耗也是越来越低。 作为研发人员&#xff0c;除了能够设计出满…

巧用千寻位置GNSS软件|点测量采集技巧

点测量是测量中重要的节点&#xff0c;在测量工作的信息处理分析中发挥着重要作用。本期将给各位带来使用千寻位置GNSS软件采集地形点、控制点、快速点、连续点、房角点和倾斜点的操作技巧。地形点地形点的设置如图 5.1-9所 示&#xff0c;每次采集一个点&#xff0c;该点需要满…

Docker通过Nginx容器代理部署Vue项目

一、打包构建dist 在vue.config.js 添加入口等配置&#xff1a; pages: {index: {// 入口entry: src/main.js}}, lintOnSave: false, publicPath: ./ 在package.json文件中编写build构建&#xff1a; 然后运行: npm run build 在项目根目录下就有构建好的dist包&#xff0…

物流路由线路配载前端算法逻辑实现方案

作者&#xff1a;京东物流 柳宏 1.前置知识 1.1 基本概念 1.1.1 配载 配载代表着某条线路是否具有发往某个方向&#xff08;区域、省市县、分拣等&#xff09;的能力&#xff0c;也可以说是网点&#xff08;分拣中心&#xff09;是否具有承载配载所指方向货物的能力。一般网…

Go 构建基础的事件调度器

&#x1f447;我在这儿 当我们需要在一段时间后的特定时间或间隔运行任务时&#xff0c;我们需要使用任务调度系统来运行任务&#xff1a;例如发送电子邮件、推送通知、午夜关闭账户、清空表格等。在本文中&#xff0c;我们将构建一个基本的事件调度程序&#xff0c;使用数据库…

基于springboot和ajax的简单项目 02.一直会出现的页面的上一页,下一页,分页与总页数 (下)

在各种功能中会一直出现页面分页的问题。 对此&#xff0c;可以使用pojo对象&#xff0c;来一直管理页面分页的功能。 01.创建相关的pojo对象。 由于属性是来辅助sql语句的&#xff0c;这个pojo对象。 Setter Getter ToString NoArgsConstructorpublic class PageObject<T&…

MySQL数据库实现主从同步

安装MySQL数据库8.0.32 前言 今天来学习数据库主从同步的原理及过程&#xff0c;数据库主要是用来存储WEB数据&#xff0c;在企业当中是极为重要的&#xff0c;下面一起来看下。 1.1 数据库做主从的目的 MySQL主从复制在中小企业&#xff0c;大型企业中广泛使用&#xff0c…

【ROS2指南-2】入门 turtlesim 和 rqt

目标&#xff1a;安装并使用 turtlesim 包和 rqt 工具为即将到来的教程做准备。 教程级别&#xff1a;初学者 时间&#xff1a; 15分钟 内容 背景 先决条件 任务 1 安装turtlesim 2 启动turtlesim 3 使用turtlesim 4 安装rqt 5 使用 rqt 6 重新映射 7 关闭turtlesim …

算法 || DFS(深度优先搜索) BFS(广度优先搜索)

&#xff11;、基本概念 dfs全称为Depth First Search,即深度优先搜索。它的思想是沿着每一条可能的路径一个节点一个节点地往下搜索,搜到了路径的到终点再回溯,一直到所有路径搜索完为止。 bfsbfs全称为Breath First Search,即广度(宽度)优先搜索。它的思想是将每一层的结搜…

【SQL】数据库的创建,表的创建、更新、删除

本文内容参考书籍《SQL基础教程》&#xff0c;初学者&#xff0c;请多指教。 一、数据库的创建 1、创建数据库语句 CREATE DATABASE <数据库名称>; 2、示例 CREATE DATABAST shop&#xff1b; 二、表的创建 创建表之前&#xff0c;必须先创建用于存储表的数据库。 1、…