EmguCV学习笔记 VB.Net 2.4 Image类

news2024/9/21 21:53:41

 版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

EmguCV学习笔记目录 Vb.net

EmguCV学习笔记目录 C#

笔者的博客网址:VB.Net-CSDN博客

教程相关说明以及如何获得pdf教程和代码(博客上的教程内容会和pdf教程一致,教程中也会包含所有代码),请移步:EmguCV学习笔记

2.4 Image类

Image类在EmguCV中实际是Image(Of TColor,Tdepth)类,本教程中简称Image类。其中:

  1. Tcolor:图像像素使用的颜色空间,可以使用Bgr、Hsv等。(关于颜色空间的介绍请参看2.1.1节《颜色空间》)
  2. Tdepth:图像深度,即像素的位数。例如:Byte、Int16、Int32等,大多数情况都是使用的Byte。

Image类是EmguCV中最基本的图像类,提供了各种图像处理方法,如图像裁剪、缩放、旋转等。

常用属性:

  1. Mat:对应的Mat矩阵。
  2. ROI:即region of interest(感兴趣的区域),后面会讲用法,如果需要清空ROI, 那么将它设置为Rectangle.Empty。
  3. IsROISet:返回是否设置了ROI。
  4. NumberOfChannels:图像包含的通道数。

2.4.1 构造函数

Image类常用构造函数:

Public Sub New (fileName As String)

实际使用时候的声明如:

Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

参数:

  1. fileName: 文件路径。

注意:由于使用的是Bgr,表示三个通道数据,每个通道的大小是1个Byte,也就是保存数据从0-255。如果是Image (Of Gray, Byte),那么就只有一个通道。

【代码位置:frmChapter2_3】Button1_Click

以下代码演示了使用不同的颜色空间,显示出来的图像:

    '构造函数

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        '使用Bgr颜色空间

        Dim img1 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img1

        '使用Hsv颜色空间

        Dim img2 As New Image(Of Hsv, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

图2-55 不同颜色空间显示出的图片

在下面的代码中用到这两个构造函数:

Public Sub New(size As System.Drawing.Size)

Public Sub New(width As Integer, height As Integer, value As TColor)

【代码位置:frmChapter2_3】Button2_Click

    '构造函数

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Dim img1 As New Image(Of Bgr, Byte)(New Size(200, 200))

        ImageBox1.Image = img1

        Dim img2 As New Image(Of Bgr, Byte)(img1.Size.Width, img1.Size.Height, New Bgr(255, 0, 0))

        ImageBox2.Image = img2

End Sub

上述代码中,img1设置为了200*200大小,由于没有值,那么默认是0,也就显示为黑色。而img2同img1的宽度和高度,并直接设置颜色为蓝色。

运行后如下图所示:

 

图2-56 显示黑色和蓝色图像

2.4.2 设置图像颜色

通过SetZero和SetValue可以设置图像整体颜色。其中SetZero将图像所有像素设置为0,即黑色;SetValue可以设置指定的颜色。

【代码位置:frmChapter2_3】Button3_Click

    'SetZeroSetValue

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

        Dim img1 As New Image(Of Bgr, Byte)(New Size(200, 200))

        '所有像素设置为0

        img1.SetZero()

        ImageBox1.Image = img1

        Dim img2 As New Image(Of Bgr, Byte)(New Size(200, 200))

        '所有像素设置为红色

        img2.SetValue(New Bgr(0, 0, 255))

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

 

图2-57 显示黑色和红色图像

另外还可以通过像素点在行、列方向索引的方式,设置具体某个像素点颜色。需要注意的是,这个方法使用的颜色,和Image的Tcolor要一致。

【代码位置:frmChapter2_3】Button4_Click

    '设置像素点颜色

    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

        '使用Bgr颜色空间

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img

        For i As Integer = 100 To 200

            For j As Integer = 200 To 300

                'img(,列)=Bgr

                img(j, i) = New Bgr(122, 122, 122)

            Next

        Next

        ImageBox2.Image = img

End Sub

运行后如下图所示:

图2-58 在图像上生成一个灰色的方框

与设置像素点颜色相反,读取图片某个位置像素的颜色可以使用以下代码:

Bgr=img(行,列)

【代码位置:frmChapter2_3】Button5_Click

    '读取像素颜色

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img

        Dim imgDst As New Image(Of Bgr, Byte)(New Size(120, 120))

        Dim c As Bgr

        '读取源图像坐标(00)像素的颜色

        c = img(0, 0)

        '设置图像颜色

        imgDst.SetValue(c)

        ImageBox2.Image = imgDst

End Sub

运行后如下图所示:

 

图2-59 获取源图像某个像素的颜色

2.4.3 图像的副本

Image 类中的 Copy 和 Clone 方法都可以用于创建图像的副本,但它们之间存在一些区别:如果源图像设置了ROI区域,Clone 方法会将源图像完全复制,包括ROI区域;而Copy方法仅复制源图像的ROI区域。

【代码位置:frmChapter2_3】Button6_Click

    'CopyClone:未设置ROI

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        Dim imgClone As Image(Of Bgr, Byte)

        imgClone = img.Clone

        ImageBox1.Image = imgClone

        Dim imgCopy As Image(Of Bgr, Byte)

        imgCopy = img.Copy

        ImageBox2.Image = imgCopy

End Sub

运行后如下图所示:

图2-60 未设置ROI时,Clone和Copy显示相同

【代码位置:frmChapter2_3】Button7_Click

    'CopyClone:设置ROI

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        img.ROI = New Rectangle(100, 100, 200, 200)

        Dim imgClone As Image(Of Bgr, Byte)

        imgClone = img.Clone

        '取消ROI区域

        imgClone.ROI = Rectangle.Empty

        '实际显示了源图像的全部区域

        ImageBox1.Image = imgClone

        Dim imgCopy As Image(Of Bgr, Byte)

        imgCopy = img.Copy

        '取消ROI区域,不影响已经拷贝的副本

        img.ROI = Rectangle.Empty

        '实际只显示了源图像的(100, 100, 200, 200)区域

        ImageBox2.Image = imgCopy

End Sub

运行后如下图所示:

 

图2-61 设置ROI后,Clone显示同源图,Copy只显示源图的ROI部分

2.4.4 图像的运算

2.4.4.1 加法

Image类提供了Add和AddWeighted方法,用于对两个图像进行加法运算。这两个方法的作用类似,都是将两个图像的像素值相加,并将结果存储到一个新的图像中。不同之处在于,AddWeighted方法还可以对两个图像进行加权求和,并可以指定权重系数。

需要注意的是,要使用Add和AddWeighted方法对两个图像进行加法运算,两个输入图像的大小、颜色空间和深度类型必须相同。

【代码位置:frmChapter2_3】Button8_Click

    '加法:Add

    Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click

        Dim imgsrc As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        '直接加上某个颜色

        Dim img1 As New Image(Of Bgr, Byte)(imgsrc.Size)

        img1 = imgsrc.Add(New Bgr(40, 40, 40))

        ImageBox1.Image = img1

        '图像+图像

        Dim img2 As New Image(Of Bgr, Byte)(imgsrc.Size)

        img2.SetValue(New Bgr(255, 0, 0))

        For i As Integer = 100 To 200

            For j As Integer = 200 To 300

                img2(j, i) = New Bgr(122, 122, 122)

            Next

        Next

        Dim img3 As New Image(Of Bgr, Byte)(imgsrc.Size)

        'Add

        img3 = imgsrc.Add(img2)

        ImageBox2.Image = img3

End Sub

运行后如下图所示:

 

图2-62 Add方法

AddWeighted方法的语法如下:

Public Function AddWeighted(img2 As Emgu.CV.Image(Of TColor, TDepth), alpha As Double, beta As Double, gamma As Double) As Emgu.CV.Image(Of TColor, TDepth)

其中:

  1. img2:需要做加运算的第二个输入图像。
  2. alpha:第一个输入图像的权重系数。
  3. beta:第二个输入图像的权重系数。
  4. gamma:表示加权求和后的偏移量。

使用AddWeighted方法后:

输出图像像素颜色=第一个输入图像像素颜色* alpha +第二个输入图像像素颜色* beta + gamma

【代码位置:frmChapter2_3】Button9_Click

    'AddWeighted

    Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click

        Dim img1 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img1

        '叠加的图片必须同一个尺寸和同一类型

        Dim img2 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena_fillwhite.jpg")

        'img1的权重

        Dim alpha As Double = 0.3

        'img2的权重

        Dim beta As Double = 0.5

        '偏移量

        Dim gamma As Double = -40

        Dim img3 As New Image(Of Bgr, Byte)(img1.Size)

        'AddWeighted

        img3 = img1.AddWeighted(img2, alpha, beta, gamma)

        ImageBox2.Image = img3

End Sub

运行后如下图所示:

 

图2-63 AddWeighted方法

2.4.4.2 减法

【代码位置:frmChapter2_3】Button10_Click

    '减法:AbsDiff 1

    Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click

        Dim imgsrc As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        '====以下代码减去某个颜色值

        Dim img1 As Image(Of Bgr, Byte)

        img1 = imgsrc.AbsDiff(New Bgr(50, 50, 50))

        ImageBox1.Image = img1

        '====逆反(底片)效果

        Dim img2 As New Image(Of Bgr, Byte)(imgsrc.Size)

        img2.SetValue(New Bgr(255, 255, 255))

        Dim img3 As Image(Of Bgr, Byte)

        img3 = imgsrc.AbsDiff(img2)

        ImageBox2.Image = img3

End Sub

运行后如下图所示:

 

图2-64 AbsDiff方法

【代码位置:frmChapter2_3】Button11_Click

    '减法:AbsDiff 2 扣出人像

    Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click

        Dim imgsrc As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = imgsrc

        '载入的图片已经将人像部分涂黑

        Dim img1 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena_fillblack.jpg")

        Dim img2 As Image(Of Bgr, Byte)

        img2 = imgsrc.AbsDiff(img1)

        '更换图片顺序做减法也一样:

        'img2 = img1.AbsDiff(imgsrc)

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

 

图2-65 使用AbsDiff进行抠图

2.4.4.3 乘法

【代码位置:frmChapter2_3】Button12_Click

    '乘法:Mul

    Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img

        Dim img2 As New Image(Of Bgr, Byte)(img.Size)

        img2 = img.Mul(2)

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

 

图2-66 乘法

2.4.4.4 Xor和And运算

【代码位置:frmChapter2_3】Button13_Click

    'XorAnd运算1:使用彩色图片

    Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click

        Dim imgsrc1 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        Dim imgsrc2 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena_fillblack.jpg")

        Dim imgout1 As New Image(Of Bgr, Byte)(imgsrc1.Size)

        'Xor运算

        imgout1 = imgsrc1.Xor(imgsrc2)

        ImageBox1.Image = imgout1

        Dim imgout2 As New Image(Of Bgr, Byte)(imgsrc1.Size)

        'And运算

        imgout2 = imgsrc1.And(imgsrc2)

        ImageBox2.Image = imgout2

End Sub

运行后如下图所示:

 

图2-67 彩色图片的Xor和And运算

【代码位置:frmChapter2_3】Button14_Click

    'XorAnd运算2:使用灰度图片

    Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click

        Dim imgsrc1 As New Image(Of Gray, Byte)("C:\learnEmgucv\lena.jpg")

        Dim imgsrc2 As New Image(Of Gray, Byte)("C:\learnEmgucv\lena_fillblack.jpg")

        Dim imgout1 As New Image(Of Gray, Byte)(imgsrc1.Size)

        imgout1 = imgsrc1.Xor(imgsrc2)

        ImageBox1.Image = imgout1

        Dim imgout2 As New Image(Of Gray, Byte)(imgsrc1.Size)

        imgout2 = imgsrc1.And(imgsrc2)

        ImageBox2.Image = imgout2

End Sub

运行后如下图所示:

 

图2-68 灰度图片的Xor和And运算

2.4.5 常用方法

Image类提供的图像处理方法和Mat类的方法类似,请参看5.3节【Mat类】部分;此外,还有一些方法和后面第5章【图像处理】所讲述的方法类似,请参考第5章的讲解。

2.4.5.1 Convert

Convert方法将一个图像转换为其他颜色空间的图像,例如将BGR图像转换为灰度图像、将灰度图像转换为彩色图像等。

【代码位置:frmChapter2_3】Button15_Click

    '颜色空间转换

    Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        Dim img1 As Image(Of Rgb, Byte)

        'BgrRgb

        img1 = img.Convert(Of Rgb, Byte)

        ImageBox1.Image = img1

        Dim img2 As Image(Of Gray, Byte)

        'BgrGray

        img2 = img.Convert(Of Gray, Byte)

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

 

图2-69 图像颜色空间转换

2.4.5.2 ThresholdBinary

Thresholdbinary方法,用于对图像进行二值化处理。二值化是一种常用的图像处理技术,可以将图像中的像素点转换为只有两种值(一般是黑和白,对应像素值为0和255)的形式,以便于后续处理。

thresholdbinary方法的语法如下:

Public Function ThresholdBinary(threshold As TColor, maxValue As TColor) As Emgu.CV.Image(Of TColor, TDepth)

参数说明:

threshold:表示阈值,此参数决定了二值化的结果,如果像素点的灰度值大于等于阈值,则将其设为最大值,否则将其设为0。如果是处理多通道图像,那么图像的每个通道将分别与阈值做对比。

maxVal:表示最大值,默认为255。

【代码位置:frmChapter2_3】Button16_Click

    '二值化1ThresholdBinary

    Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img

        Dim img2 As New Image(Of Bgr, Byte)(img.Size)

        img2 = img.ThresholdBinary(New Bgr(120, 120, 120), New Bgr(255, 255, 255))

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

 

图2-70 彩色图像二值化

2.4.5.2 ThresholdBinaryInv

ThresholdBinaryInv与Thresholdbinary相反,如果像素点的灰度值小于阈值,则将其设为最大值,否则将其设为0。如果是处理多通道图像,那么图像的每个通道将分别与阈值做对比。

【代码位置:frmChapter2_3】Button17_Click

    '二值化2ThresholdBinaryInv

    Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click

        Dim imgsrc As New Image(Of Gray, Byte)("C:\learnEmgucv\lena.jpg")

        Dim img1 As New Image(Of Gray, Byte)(imgsrc.Size)

        img1 = imgsrc.ThresholdBinary(New Gray(120), New Gray(255))

        ImageBox1.Image = img1

        Dim img2 As New Image(Of Gray, Byte)(imgsrc.Size)

        img2 = imgsrc.ThresholdBinaryInv(New Gray(120), New Gray(255))

        ImageBox2.Image = img2

End Sub

运行后如下图所示,可以看到两个图像黑白是相反的:

 

图2-71 ThresholdBinaryInv与Thresholdbinary的对比

Image类下面还有几个Threshold~方法,这里不再累述,后面第5章,还要讲到。

2.4.5.3 Canny

Canny方法用于进行Canny边缘检测。Canny边缘检测是一种非常常用的图像处理算法,它可以检测出图像中的边缘,并将它们以二值图像的形式输出。

Canny方法原型如下:

Public Function Canny(thresh As Double, threshLinking As Double) As Emgu.CV.Image(Of Emgu.CV.Structure.Gray, Byte)

  1. thresh:一个Double类型的值,表示高阈值。
  2. threshLinking:一个Double类型的值,表示低阈值。

【代码位置:frmChapter2_3】Button18_Click

    '边缘检测:canny

    Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click

        '载入彩色图像再进行Canny

        Dim imgsrc1 As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        Dim img1 As New Image(Of Gray, Byte)(imgsrc1.Size)

        img1 = imgsrc1.Canny(120, 0)

        ImageBox1.Image = img1

        '载入灰度图像再进行Canny

        Dim imgsrc2 As New Image(Of Gray, Byte)("C:\learnEmgucv\lena.jpg")

        Dim img2 As New Image(Of Gray, Byte)(imgsrc2.Size)

        img2 = imgsrc2.Canny(120, 0)

        ImageBox2.Image = img2

End Sub

运行后如下图所示,可以看到两种方式进行边缘检测结果不同:

 

图2-72 彩色图像和灰度图像的边缘检测

2.4.5.4 SmoothBlur

SmoothBlur方法用于对图像进行模糊(也称为滤波)处理,以达到平滑图像的效果。模糊处理是一种常见的图像预处理方法,可以减少图像中的噪声,平滑图像的边缘和细节,同时也可以用于去除图像中的某些细节信息,以达到特定的目的。

SmoothBlur方法的原型为:

Public Function SmoothBlur(width As Integer, height As Integer) As Emgu.CV.Image(Of TColor, TDepth)

SmoothBlur方法将按照像素对width*height的区域进行求和,随后乘上1/(width*height)获得处理后的像素值。

【代码位置:frmChapter2_3】Button19_Click

    '模糊:SmoothBlur

    Private Sub Button19_Click(sender As Object, e As EventArgs) Handles Button19.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img

        Dim img2 As New Image(Of Bgr, Byte)(img.Size)

        img2 = img.SmoothBlur(3, 10)

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

 

图2-73 模糊

2.4.5.5 SmoothGaussian

Smoothgaussian方法用于对图像进行高斯模糊(滤波),可以用于去噪或者平滑图像。高斯滤波是一种线性平滑滤波器,它可以对图像进行平滑处理,同时保持图像的边缘信息不变。

Smoothgaussian方法的原型为:

Public Function SmoothGaussian(kernelWidth As Integer, kernelHeight As Integer, sigma1 As Double, sigma2 As Double) As Emgu.CV.Image(Of TColor, TDepth)

  1. kernelWidth和kernelHeight表示模糊核的宽度和高度,也称为模板的大小。
  2. sigmaX和sigmaY分别表示模糊核在X和Y方向上的标准差,决定了模糊程度。

【代码位置:frmChapter2_3】Button20_Click

    '模糊:SmoothGaussian

    Private Sub Button20_Click(sender As Object, e As EventArgs) Handles Button20.Click

        Dim img As New Image(Of Bgr, Byte)("C:\learnEmgucv\lena.jpg")

        ImageBox1.Image = img

        Dim img2 As New Image(Of Bgr, Byte)(img.Size)

        img2 = img.SmoothGaussian(5, 5, 15, 1.5)

        ImageBox2.Image = img2

End Sub

运行后如下图所示:

图2-74 高斯模糊

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

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

相关文章

【图解秒杀系列】秒杀技术点——秒杀按钮点亮、削峰

【图解秒杀系列】秒杀技术点——秒杀按钮点亮、削峰 秒杀按钮点亮涉及的问题以及解决办法处理流程 削峰答题 & 验证码具体流程 排队 秒杀按钮点亮 在秒杀场景中,秒杀商品页面是需要处理按钮点亮的逻辑的。在秒杀未开始前,按钮置灰,不可点…

POSIX信号量semaphore实现线程同步

POSIX标准定义了信号量接口如下&#xff0c;常常用于线程间同步。 #include <semaphore.h>int sem_init(sem_t *sem, int pshared, unsigned int value); int sem_destroy(sem_t *sem); int sem_post(sem_t *sem); int sem_wait(sem_t *sem); sem_init()在sem指向的地址…

微信小程序反编译工具

目录 介绍 工程结构还原 微信开发者工具运行 如何查看当前运行版本? 开启小程序F12 重新打包运行 效果示例 安装 用法 参数说明 获取微信小程序AppID 文件夹名即为AppID 下载地址 介绍 纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器, 自…

【杂谈】-8个常用的Python图像操作库

8个常用的Python图像操作库 文章目录 8个常用的Python图像操作库1、OpenCV2、Pillow&#xff08;PIL&#xff09;3、Scikit Image4、Numpy5、SciPy6、Mahotas7、SimpleITK8、Matplotlib 在当今世界&#xff0c;数据在每个行业垂直领域中都发挥着至关重要的作用。图像可以是提取…

Redis 操作的原子性及其保证机制

Redis 操作的原子性及其保证机制 1、单命令的原子性2、事务的原子性3、并发操作的考虑4、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; Redis 的操作之所以是原子性的&#xff0c;主要得益于其单线程的执行模型。这种模型确保了每个命…

5.9.8 最优化控制初探——PID参数优化

总目录&#xff1a;http://t.csdnimg.cn/YDe8m 5.9.8 最优化控制初探——PID参数优化 之前在“A_2_PID控制转速例程”例程中&#xff0c;PID参数是手动调节的。然而在已经获得系统完整数学模型的情况下&#xff0c;我们可以使用效率更高的方法&#xff0c;即最优化控制。先来看…

Nios II新建项目

1.Nios II Application and BSP form Template BSP:board support package&#xff08;板级支持包&#xff09; 2.Nios II Sotware Examples SOPC Information File name:选择项目文件夹下的 .sopcinfo 文件 Project name:自定义名称 Project location:Use default locatio…

删除镜像报容器依赖错误

1、删除镜像报容器依赖错误 出现这个错误的原因是因为5303b5323a4c容器使用了此镜像。解决&#xff1a;先停止容器、删除容器、之后再镜像即可。 2、查看镜像对应的容器 # docker ps -a | grep 611a37aa5ffc 3、先停止容器 # docker stop 5303b5323a4c 4、删除容器 # do…

Spring Boot: 2.7.x 至 2.7.18 及更旧的版本,漏洞说明

本文提供的修复指南将帮助开发者有效规避 CVE-2024-38808 和 CVE-2024-38809 的风险。如果你正在使用老版本的 Spring Boot&#xff0c;请尽快参考本文进行修复与升级。 此漏洞来源于spring官网&#xff1a;https://spring.io/blog/2024/08/14/spring-framework-releases-fixe…

flink车联网项目前篇:业务实现1(第67天)

系列文章目录 业务实现 3.1 创建catalog 3.1.1 vvp 3.1.2 mysqlcdc 3.1.2.1 使用限制 3.1.2.2 配置MySQL Catalog 3.1.3 xxxxpm 3.1.3.1 下载Paimon插件 3.1.3.2 在MaxCompute项目中上传Paimon插件 3.1.3.3 创建自定义Catalog类型 3.1.3.5 配置catalog 3.1.4 xxxxx 3.1.4.1 背…

Linux设置yum源为阿里云镜像源

一、验证网络是否可以连接阿里云镜像 #验证网络是否可以连接阿里云镜像 ping mirrors.aliyun.com如果ping不通&#xff0c;则找一台可以连接外网的电脑&#xff0c;ping一下mirrors.aliyun.com&#xff0c;找到mirrors.aliyun.com对应的ip。 二、 手动配置 #删除原yum源 rm -…

微信小程序免费《短视频去水印》

分享一个uniapp开发的微信小程序免费《短视频去水印》小程序 <template><view class"content"><view class"area-wrap"><textarea name"" v-model"state.content" maxlength"800" id"" cols…

接口自动化测试怎么做?该怎么学习

一. 什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型&#xff0c;测试类型又主…

《黑神话:悟空》媒体评分解禁 M站均分82

《黑神话&#xff1a;悟空》媒体评分现已解禁&#xff0c;截止发稿时&#xff0c;M站共有43家媒体评测&#xff0c;均分为82分。 部分媒体评测&#xff1a; God is a Geek 100&#xff1a; 毫无疑问&#xff0c;《黑神话&#xff1a;悟空》是今年最好的动作游戏之一&#xff…

linux系统安装mysql服务

linux系统安装mysql服务 1.下载安装包2.下载压缩文件解压安装3. 安装完启动服务4.查看安装密码5.使用上述密码登录6.修改密码7.创建一个root可以在任意主机远程连接数据库8.远程登录成功 1.下载安装包 https://downloads.mysql.com/archives/community/ mysql下载地址 2.下载…

【AI安防】YOLOv8 + OpenVINO2023 + QT5 电子围栏预警系统

引言 电子围栏是一种利用无线通信技术和地理信息系统实现的虚拟边界&#xff0c;用于监控和控制被监控对象的位置。它可以帮助我们实现对特定区域内的自定义对象进行实时检测、定位与跟踪。本文介绍了一种基于YOLOv8 OpenVINO2023 QT5 联合打造的实时高效、多线程、自定义对…

Keepalived简介以及常见用途

一、Keepalived 简介 Keepalived 是一个高可用性&#xff08;HA&#xff09;解决方案&#xff0c;主要用于实现 Linux 系统的负载均衡和故障转移。它最初设计用于与 LVS&#xff08;Linux Virtual Server&#xff09;一起使用&#xff0c;但也可以独立使用&#xff0c;主要功能…

0815,析构函数,拷贝构造函数,赋值运算符函数

来自同济医院的问候 目录 01&#xff1a;对象创建 001.cc 003size.cc 02&#xff1a;对象销毁 004pointer.cc 005destroytime.cc 03&#xff1a;本类型对象的复制 3.1 拷贝构造函数 006cp.cc 007cptime.cc 008recursion.cc 009rightleft.cc 3.2 赋值运算符函数 …

8.15 Day20 Windows服务器(Windows service 2008 R2)上域的搭建 (3)

1、域策略配置 1.1 DC服务端的策略配置 1.1.1 下放权限 由于各部门经理的电脑上并不存在对应的工具&#xff0c;即便授予权限也无法对各自部门进行管理 如果经理只有几个&#xff0c;管理员可以一一为其配置&#xff0c;但如果一个公司有几十个经理&#xff0c;则会变得相当冗…

测试用例的设计

*涉及概念来源于《软件测试的艺术》 目录 一、为什么要设计测试用例&#xff1f; 二、黑盒测试与白盒测试介绍 三、测试用例常见设计方法 1.黑盒测试(功能测试) 2.白盒测试(结构测试) 四、测试策略 五、测试用例怎么写 一、为什么要设计测试用例&#xff1f; 由于时间…