(数字图像处理MATLAB+Python)第五章图像增强-第四、五节:基于模糊技术和基于伪彩色处理的图像增强

news2024/9/28 13:24:14

文章目录

  • 一:基于模糊技术的图像增强
    • (1)图像的模糊特征平面
    • (2)算法步骤
    • (3)程序
  • 二:基于伪彩色处理的图像增强
    • (1)真彩色、假彩色和伪彩色
    • (2)伪彩色处理图像增强概述
      • A:为什么需要彩色增强处理图像?
      • B:伪彩色增强基本原理
      • C:伪彩色处理图像增强方法
        • ①:密度分割法
        • ②:彩色变换法
        • ③:频域伪彩色处理
    • (3)总结

一:基于模糊技术的图像增强

(1)图像的模糊特征平面

图像的模糊特征平面:假设原始图像为 I ( x , y ) I(x,y) I(x,y),其中 x x x y y y 分别表示图像的水平和垂直方向的坐标。模糊特征平面可以表示为 B ( x , y , θ ) B(x,y,\theta) B(x,y,θ),其中 θ \theta θ 是一个旋转角度参数,表示模糊核函数的旋转角度。 B ( x , y , θ ) B(x,y,\theta) B(x,y,θ) 表示在 ( x , y ) (x,y) (x,y) 处应用旋转角度为 θ \theta θ 的模糊核函数时得到的图像模糊程度

通常,模糊核函数可以表示为 h ( x , y , θ ) h(x,y,\theta) h(x,y,θ),其中 ( x , y ) (x,y) (x,y) 表示模糊核函数中心的坐标, θ \theta θ 表示旋转角度。那么,模糊特征平面可以通过将原始图像 I ( x , y ) I(x,y) I(x,y) 和模糊核函数 h ( x , y , θ ) h(x,y,\theta) h(x,y,θ) 卷积得到

B ( x , y , θ ) = I ( x , y ) ∗ h ( x , y , θ ) B(x,y,\theta)=I(x,y)*h(x,y,\theta) B(x,y,θ)=I(x,y)h(x,y,θ)

在实际应用中,模糊特征平面常常被用来进行图像识别和分类等任务,因为它可以帮助我们理解和描述图像模糊程度的特征

(2)算法步骤

算法步骤

①:将图像从空间灰度域变换到模糊域

  • F e F_{e} Fe为指数模糊因子。一般情况下, F e F_{e} Fe取值为2
  • F d F_{d} Fd为分数模糊因子,定义为 F d = x max ⁡ − x c 2 1 / F e − 1 F_{d}=\frac{x_{\max }-x_{c}}{2^{1 / F_{e}}-1} Fd=21/Fe1xmaxxc,其中 x c x_{c} xc为过渡点,其取值需要满足 μ c = T ( x c ) = 0.5 \mu_{c}=T(x_{c})=0.5 μc=T(xc)=0.5 x c ∈ X x_{c}\in X xcX

μ m n = T ( x m n ) = [ 1 + x max ⁡ − x m n F d ] − F e \mu_{m n}=T\left(x_{m n}\right)=\left[1+\frac{x_{\max }-x_{m n}}{F_{d}}\right]^{-F_{e}} μmn=T(xmn)=[1+Fdxmaxxmn]Fe

②:在模糊域,对模糊特征进行一定的增强

  • μ m n ′ \mu^{\prime}_{mn} μmn为增强后的模糊域像素灰度值
  • r r r为正整数,表示迭代次数

{ μ m n ′ = I r ( μ m u ) = { 2 μ m u 2 , 0 ≤ μ m n < 0.5 1 − 2 ( 1 − μ m u ) 2 , 0.5 ≤ μ m u < 1 I r ( μ m n ) = I 1 ( I r − 1 ( μ m u ) ) \left\{\begin{array}{ll}\mu_{m n}^{\prime}=I_{r}\left(\mu_{m u}\right)=\left\{\begin{array}{cl}2 \mu_{m u}^{2}, & 0 \leq \mu_{m n}<0.5 \\1-2\left(1-\mu_{m u}\right)^{2}, & 0.5 \leq \mu_{m u}<1\end{array}\right. \\I_{r}\left(\mu_{m n}\right)=I_{1}\left(I_{r-1}\left(\mu_{m u}\right)\right)\end{array}\right. μmn=Ir(μmu)={2μmu2,12(1μmu)2,0μmn<0.50.5μmu<1Ir(μmn)=I1(Ir1(μmu))

③:逆变换后,得到新的模糊增强后的输出图像

z m n = I − 1 ( μ m n ′ ) = x max ⁡ − F d [ ( μ m n ′ ) 1 F e − 1 ] z_{m n}=I^{-1}\left(\mu_{m n}^{\prime}\right)=x_{\max }-F_{d}\left[\left(\mu_{m n}^{\prime}\right)^{\frac{1}{F_{e}}}-1\right] zmn=I1(μmn)=xmaxFd[(μmn)Fe11]

(3)程序

在这里插入图片描述


matlab实现

Image=imread('Beautiful.jpg');
[height width]=size(Image);
Image=double(Image);     xmax=max(max(Image)); 
xc=mean2(Image); 
Fe=2;         Fd=(xmax-xc)/(2^(1/Fe)-1);
u=(1+(xmax-Image)/Fd).^(-Fe);                  
times=2; %设置迭代次数
for k=1:times
    for i=1:height                                                     
        for j=1:width
			if u(i,j)<0.5
				u(i,j)=2*u(i,j)^2; 
			else
				u(i,j)=1-2*(1-u(i,j))^2;      
			end
		end
   end
end
NewImage=xmax-Fd.*(u.^(-1/Fe)-1);                
figure;imshow(uint8(NewImage));title('基于模糊技术的增强');

Python实现

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读入图像
image = cv2.imread('Beautiful.jpg', cv2.IMREAD_GRAYSCALE)

# 获取图像高度和宽度
height, width = image.shape

# 将图像转换为浮点数类型
image = image.astype(float)

# 计算最大灰度值和图像的均值
xmax = np.max(image)
xc = np.mean(image)

# 计算 Fe 和 Fd
Fe = 2
Fd = (xmax - xc) / (2 ** (1 / Fe) - 1)

# 计算模糊增强函数
u = (1 + (xmax - image) / Fd) ** (-Fe)

# 设置迭代次数
times = 2

# 迭代更新模糊增强函数
for k in range(times):
    for i in range(height):
        for j in range(width):
            if u[i, j] < 0.5:
                u[i, j] = 2 * u[i, j] ** 2
            else:
                u[i, j] = 1 - 2 * (1 - u[i, j]) ** 2

# 计算增强后的图像
new_image = xmax - Fd * ((u) ** (-1 / Fe) - 1)

# 显示增强后的图像
plt.imshow(new_image.astype(np.uint8), cmap='gray')
plt.title('基于模糊技术的增强')
plt.show()

二:基于伪彩色处理的图像增强

(1)真彩色、假彩色和伪彩色

真彩色:是一种能够显示全部或大部分人类可见光谱的图像呈现方式。在数码摄影、计算机图形学和显示技术中,具有真彩色的图像通常由红、绿和蓝三种原色光以不同强度的组合来呈现,每种原色的强度值用 8 位二进制数存储,因此在每个像素点上可以存储更精细的颜色信息,呈现出更真实的颜色

在这里插入图片描述

假彩色:是指在图像处理中为了突出某些特定的信息或者达到某种目的而对图像进行的一种虚构的颜色着色方式,一般来说,这种颜色表示方式是人为设定的,不一定与真实颜色有任何关系。例如,在地球观测中,有时使用假彩色来表示不同种类的地物或者地表特征,如植被、水域、城市等,这样可以更清晰地区分不同的地物或者地表特征

在这里插入图片描述

伪彩色:每个像素的颜色不是由每个基色分量的数值直接决定的,而是把像素值当作彩色查找表(CLUT)的表项入口地址,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值产生的彩色称为伪彩色。彩色查找表CLUT是一个事先做好的表,表项入口地址也称为索引号。例如16种颜色的查找表,0号索引对应黑色,15号索引对应白色

在这里插入图片描述

通俗易懂地说,伪彩色就是在黑白灰度图像的基础上,通过颜色的变化突出图像的特定信息。例如,一张黑白皱巴巴的纸看上去可能很普通,但如果将图像变换成伪彩色,加入颜色的更丰富表现,则可能会呈现出更多的信息。同样,对于一张医学图像,通过伪彩色的增强方式,就能凸显出人体不同器官或疾病的具体位置和特征

在这里插入图片描述

(2)伪彩色处理图像增强概述

A:为什么需要彩色增强处理图像?

假设我们想在地图上显示不同地区的温度,我们可以把地图上的温度数据叠加为灰度图像,此时较暗的区域代表温度比较低、较亮的区域温度比较高。这样的表示其实有一定缺陷,第一个原因人类视觉系统对灰度强度的变化不灵敏,能够区分的灰度级一般只有二十几个,而对不同亮度和色调的彩色图像的分辨力能力却可以达到灰度分辨能力的数百倍以上;第二个原因是因为我们可以用不同的颜色代表不同的意义,比如用蓝色代表温度较低、红色代表温度较高

在这里插入图片描述

因此彩色增强处理图像的主要目的是为了改善图像的视觉效果和识别能力。对于很多实际应用中的图像,例如医学影像、卫星遥感图像等,单纯的灰度图像可能不足以满足人类视觉的需求,而加入彩色信息则可以让图像更容易被人眼识别和理解。具体来说,彩色增强处理图像具有以下好处:

  • 提高图像的对比度和亮度:彩色增强可以通过增加饱和度、调整色彩平衡等方式改善图像的对比度和亮度,使得图像更加清晰和易于观察
  • 突出图像的特征和细节:彩色增强可以通过调整色彩和饱和度等参数,突出图像中的特征和细节,例如目标区域、纹理等,从而更好地实现目标检测、图像分割等任务

彩色增强在图像增强中应用十分广泛,常见的彩色增强技术主要分为如下两类:

  • 假彩色增强:将一幅彩色图像映射为另一幅彩色图像,从而达到增强彩色对比,使图像更加醒目
  • 伪彩色增强:将图像灰度分级,然后对每个灰度值区间中的像素赋一种颜色,从而映射为彩色图像

B:伪彩色增强基本原理

伪彩色增强基本原理:伪彩色增强是一种将灰度图像转化为彩色图像的方法,它的基本原理是将灰度图像中的每个像素的灰度值映射到一个伪彩色表(也称为颜色映射表)上,从而生成一张带有伪彩色的图像。通常情况下,伪彩色表会根据不同的应用需求而定制,以达到最佳的图像增强效果

% 读入卫星图
I = imread(SatelliteMap.jpg);
% 定义颜色映射
map = jet(256);
% 将灰度图像转换为伪彩色图像
PesudoImage) = ind2rgb(I, map);
% 显示伪彩色图像
subplot(1,2,1),imshow(I),title('原图');
subplot(1,2,2),imshow(PesudoImage),title('伪彩色图');

在这里插入图片描述

C:伪彩色处理图像增强方法

①:密度分割法

密度分割法:这是伪彩色处理技术中最基本、最简单的一种方法。该方法的主要原理是将输入图像的灰度值分成若干个密度区间,每个密度区间分配一种颜色,生成一副带有伪彩色的图像。如下图,设一幅灰度图像 f ( x , y ) f(x,y) f(x,y)可以看作坐标 ( x , y ) (x,y) (x,y)的一个密度函数,把此图像的灰度分为若干区间,即相当于用一些和坐标平面平行的平面在相交区域切割此密度函数

在这里插入图片描述

实现如下效果

在这里插入图片描述


matlab实现

 clear all;close all;
 
I = double(rgb2gray(imread('feibu.png')));
[M N] = size(I);
I2 = zeros(M, N, 3);                                 %初始化三通道

for x = 1 : M
   for y = 1 : N
      if I(x, y) <= 127                                 % R
          I2(x, y, 1) = 0;
      elseif I(x, y) <= 191
          I2(x, y, 1) = 4 * I(x, y) - 510;
      else
          I2(x, y, 1) = 255;
      end
       
      if I(x, y) <= 63                                  % G
          I2(x, y, 2) = 254 - 4 * I(x, y);
      elseif I(x, y) <= 127
          I2(x, y, 2) = 4 * I(x, y) - 254;
      elseif I(x, y) <= 191
          I2(x, y, 2) = 255;
      else
          I2(x, y, 2) = 1022 - 4 * I(x, y);
      end
       
      if I(x, y) <= 63                                 % B
          I2(x, y, 3) = 255;
      elseif I(x, y) <= 127
          I2(x, y, 3) = 510 - 4 * I(x, y);
      else
          I2(x, y, 3) = 0;
      end
   end
end
imshow(uint8(I2));

Python实现

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
I = cv2.imread('feibu.png', cv2.IMREAD_GRAYSCALE)
M, N = I.shape

# 初始化三通道
I2 = np.zeros((M, N, 3), dtype=np.float32)

# RGB 转换
for x in range(M):
    for y in range(N):
        if I[x, y] <= 127:  # R
            I2[x, y, 0] = 0
        elif I[x, y] <= 191:
            I2[x, y, 0] = 4 * I[x, y] - 510
        else:
            I2[x, y, 0] = 255

        if I[x, y] <= 63:  # G
            I2[x, y, 1] = 254 - 4 * I[x, y]
        elif I[x, y] <= 127:
            I2[x, y, 1] = 4 * I[x, y] - 254
        elif I[x, y] <= 191:
            I2[x, y, 1] = 255
        else:
            I2[x, y, 1] = 1022 - 4 * I[x, y]

        if I[x, y] <= 63:  # B
            I2[x, y, 2] = 255
        elif I[x, y] <= 127:
            I2[x, y, 2] = 510 - 4 * I[x, y]
        else:
            I2[x, y, 2] = 0

# 显示图像
I2 = I2.astype(np.uint8)
plt.imshow(I2)
plt.show()

②:彩色变换法

彩色变换法:这种变换方法是对输入图像的灰度值实现3种独立变换,按灰度值映射成不同大小的红、绿、蓝三基色值。然后,同他们分别去控制彩色显示器的红、绿、蓝电子枪,以产生相应的彩色显示

在这里插入图片描述

下面是最常用的映射关系
在这里插入图片描述

在这里插入图片描述

实现如下效果

请添加图片描述


matlab实现

clc;  % 清空命令窗口

% 读取名为feibu.png的图像并转换为灰度图像
I=imread('feibu.png');
I=rgb2gray(I);

% 显示灰度图像
figure(1),imshow(I);

% 将灰度图像转换为double类型的数组,并获取图像的尺寸和灰度级数
I=double(I);
[M,N]=size(I);
L=256;

% 使用双重循环遍历每个像素,并根据其灰度级别进行处理,生成伪彩色图像
for i=1:M
    for j=1:N
        if I(i,j)<=L/4
            R(i,j)=0;
            G(i,j)=4*I(i,j);
            B(i,j)=L;
        elseif I(i,j)<=L/2
            R(i,j)=0;
            G(i,j)=L;
            B(i,j)=-4*I(i,j)+2*L;
        elseif I(i,j)<=3*L/4
            R(i,j)=4*I(i,j)-2*L;
            G(i,j)=L;
            B(i,j)=0;
        else
            R(i,j)=L;
            G(i,j)=-4*I(i,j)+4*L;
            B(i,j)=0;
        end
    end
end

% 使用双重循环遍历每个像素,并将伪彩色值存储到OUT数组中
for i=1:M
    for j=1:N
        OUT(i,j,1)=R(i,j);
        OUT(i,j,2)=G(i,j);
        OUT(i,j,3)=B(i,j);
    end
end

% 将OUT数组的值除以256,生成0到1之间的浮点数,用于显示伪彩色图像
OUT=OUT/256;

% 显示伪彩色图像
figure(2),imshow(OUT)

Python实现

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 读取名为feibu.png的图像并转换为灰度图像
img = cv2.imread('feibu.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 显示灰度图像
plt.figure()
plt.imshow(gray, cmap='gray')

# 将灰度图像转换为double类型的数组,并获取图像的尺寸和灰度级数
gray = gray.astype(np.float64)
M, N = gray.shape
L = 256

# 使用双重循环遍历每个像素,并根据其灰度级别进行处理,生成伪彩色图像
R, G, B = np.zeros_like(gray), np.zeros_like(gray), np.zeros_like(gray)

for i in range(M):
    for j in range(N):
        if gray[i,j] <= L/4:
            R[i,j] = 0
            G[i,j] = 4 * gray[i,j]
            B[i,j] = L
        elif gray[i,j] <= L/2:
            R[i,j] = 0
            G[i,j] = L
            B[i,j] = -4 * gray[i,j] + 2 * L
        elif gray[i,j] <= 3 * L/4:
            R[i,j] = 4 * gray[i,j] - 2 * L
            G[i,j] = L
            B[i,j] = 0
        else:
            R[i,j] = L
            G[i,j] = -4 * gray[i,j] + 4 * L
            B[i,j] = 0

# 将RGB数组沿第三个轴合并为单个数组
out = np.dstack((R, G, B))

# 将OUT数组的值除以256,生成0到1之间的浮点数,用于显示伪彩色图像
out = out / 256.0

# 显示伪彩色图像
plt.figure()
plt.imshow(out)
plt.show()

③:频域伪彩色处理

频域伪彩色处理:频率域伪彩色增强时,先把灰度图像𝒇(𝒙,𝒚)中的不同频率成分经傅里叶变换(FFT)到频率域。类似于灰度变换法,对对三种独立分量进行滤波,接着进行傅里叶逆变换(IFFT)得到三幅代表不同频率分量的单色图像,接着对他们进行附加处理,最后将三基色加载到彩色显示器的红、绿、蓝显示通道

在这里插入图片描述

通常情况,每个滤波器的滤波性能不一样,典型的处理方法是采用低通、带通、高通三种滤波器把图像分成低频、中频、高频三个频域分量,然后分别给予不同的三基色

实现如下效果

请添加图片描述


matlab实现

clc;
I=imread('feibu.png'); % 读取名为“feibu.png”的图像,并将其赋值给变量I
I=rgb2gray(I); % 将I从RGB格式转换为灰度格式
figure(1),imshow(I); 
[M,N]=size(I); % 获取灰度图像的尺寸,分别赋值给变量M和N   
F=fft2(I); % 对灰度图像进行二维傅里叶变换,得到其频率域表示
fftshift(F); % 对傅里叶变换结果进行移位操作,将其零频分量移到中心位置
REDcut=100; % 设置红色通道的高频截止频率
GREENcut=200; % 设置绿色通道的低频截止频率
BLUEcenter=150; % 设置蓝色通道的带通中心频率
BLUEwidth=100; % 设置蓝色通道的带宽
BLUEu0=10; % 设置蓝色通道的带通中心频率在频域上的横坐标
BLUEv0=10; % 设置蓝色通道的带通中心频率在频域上的纵坐标
% 对每个频率分量进行处理,计算三个颜色通道的频率响应
for u=1:M
    for v=1:N
        D(u,v)=sqrt(u^2+v^2); % 计算当前频率分量的频率值
        REDH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/REDcut)^2); % 计算红色通道的频率响应
        GREENH(u,v)=1/(1+(sqrt(2)-1)*(GREENcut/D(u,v))^2); % 计算绿色通道的频率响应
        BLUED(u,v)=sqrt((u-BLUEu0)^2+(v-BLUEv0)^2);
        BLUEH(u,v)=1-1/(1+BLUED(u,v)*BLUEwidth/((BLUED(u,v))^2-(BLUEcenter)^2)^2); % 计算蓝色通道的频率响应
    end
end
RED=REDH.*F; % 对红色通道的频率响应与图像频率域表示进行点乘
REDcolor=ifft2(RED); % 对点乘结果进行傅里叶逆变变换,得到红色通道的空间域表示
GREEN=GREENH.*F;
GREENcolor=ifft2(GREEN);
BLUE=BLUEH.*F;
BLUEcolor=ifft2(BLUE);
REDcolor=real(REDcolor)/256;
GREENcolor=real(GREENcolor)/256;
BLUEcolor=real(BLUEcolor)/256;
for i=1:M
    for j=1:N
        OUT(i,j,1)=REDcolor(i,j);
        OUT(i,j,2)=GREENcolor(i,j);
        OUT(i,j,3)=BLUEcolor(i,j);
    end
end
OUT=abs(OUT);
figure,imshow(OUT);

Python实现

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
I = cv2.imread('feibu.png')

# 将图像从RGB格式转换为灰度格式
I = cv2.cvtColor(I, cv2.COLOR_BGR2GRAY)

# 显示灰度图像
plt.figure()
plt.imshow(I, cmap='gray')

# 获取灰度图像的尺寸
M, N = I.shape

# 对灰度图像进行二维傅里叶变换,得到其频率域表示
F = np.fft.fft2(I)

# 对傅里叶变换结果进行移位操作,将其零频分量移到中心位置
F = np.fft.fftshift(F)

# 设置红色通道的高频截止频率
REDcut = 100

# 设置绿色通道的低频截止频率
GREENcut = 200

# 设置蓝色通道的带通中心频率
BLUEcenter = 150

# 设置蓝色通道的带宽
BLUEwidth = 100

# 设置蓝色通道的带通中心频率在频域上的横坐标
BLUEu0 = 10

# 设置蓝色通道的带通中心频率在频域上的纵坐标
BLUEv0 = 10

# 对每个频率分量进行处理,计算三个颜色通道的频率响应
for u in range(M):
    for v in range(N):
        # 计算当前频率分量的频率值
        D = np.sqrt((u - M/2)**2 + (v - N/2)**2)
        # 计算红色通道的频率响应
        REDH = 1 / (1 + (np.sqrt(2) - 1) * ((D / REDcut) ** 2))
        # 计算绿色通道的频率响应
        GREENH = 1 / (1 + (np.sqrt(2) - 1) * ((GREENcut / D) ** 2))
        # 计算蓝色通道的频率响应
        BLUED = np.sqrt((u - BLUEu0)**2 + (v - BLUEv0)**2)
        BLUEH = 1 - 1 / (1 + (BLUED * BLUEwidth / ((BLUED ** 2) - (BLUEcenter ** 2))) ** 2)
        BLUEH = np.nan_to_num(BLUEH, nan=1)
        # 对红色通道的频率响应与图像频率域表示进行点乘
        F[u, v] = REDH * F[u, v], GREENH * F[u, v], BLUEH * F[u, v]

# 对点乘结果进行傅里叶逆变变换,得到彩色图像的空间域表示
out = np.fft.ifft2(F)

# 分离三个颜色通道,并将其缩放到0-1之间
red = np.real(out[:, :, 0])

(3)总结

总结:伪彩色图像增强是将灰度图像通过将不同的灰度级别映射到不同的颜色上,生成伪彩色图像的一种方法。它主要应用于图像处理、计算机视觉和医学影像处理等领域。通过将灰度图像转换为彩色图像,可以更加直观地观察图像中的细节,使得图像在视觉上更具吸引力和易于理解

请添加图片描述

目前,伪彩色图像增强方面的研究主要集中在以下几个方面

  • 彩色变换算法的优化:目前,有很多种不同的彩色变换方法,但它们都存在一定的局限性和不足之处。因此,研究人员致力于开发更加优化的彩色变换算法,以提高图像增强效果
  • 基于深度学习的伪彩色图像增强:近年来,深度学习技术在伪彩色图像增强方面得到了广泛应用。利用深度学习技术,可以将图像的特征提取和彩色变换过程集成在一个端到端的神经网络中,使得图像增强效果更加优秀
  • 基于多模态数据融合的伪彩色图像增强:在医学影像处理领域,由于多种成像技术的存在,图像通常存在多个模态。因此,研究人员探索了将不同的成像模态融合在一起进行伪彩色图像增强的方法,以提高图像的质量和可视性
  • 伪彩色图像增强的应用:伪彩色图像增强技术已经广泛应用于医学影像处理、图像分析、地理信息系统等领域,使得图像处理和分析更加直观、高效和准确

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

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

相关文章

《扬帆优配》TMT板块或成跨年主线 大消费行业复苏“虽迟但到”

4月14日&#xff0c;第61届我国资本商场高档研讨会暨上证春季所长论坛的圆桌二环节题为“新气象新特征 如何掌握2023年出资主线”&#xff0c;由浙商证券研究所联席所长邱世梁主持。 我国经济延续复苏态势&#xff0c;结构上正在推进以高端制作、安全自主、数字经济为导向的工业…

大型医院健康体检管理系统源码(PEIS)

一、体检管理系统&#xff08;PEIS&#xff09;概念 体检管理系统&#xff08;PEIS&#xff09;是以健康为中心的身体检查。一般医学家认为健康体检是指在身体尚未出现明显疾病时&#xff0c;对身体进行的全面检查。方便了解身体情况&#xff0c;筛查身体疾病。即应用体检手段对…

Unity --- UGUI(Unity Graphical user interface)--- Canvas画布

1.UI --- User Interface --- 使用者与机器之间的交互界面 1.所谓的自适应系统指的是分辨率的适应&#xff1a; 比如在一个分辨率下做的UI放到另一个分辨率下显示时&#xff0c;如果没有自适应系统的话就会导致UI过大&#xff0c;过小&#xff0c;被辟成一半等等情况&#xff…

文心一言眼里的SQL世界

目录 一、Java基础教程系列二、先听听文心一言怎么说&#xff1f;三、话不多说&#xff0c;开干。1、要有一个正确的数据库学习路线&#xff0c;做一个细致的MySQL学习规划。2、学习资料推荐 四、MySQL基础知识总结五、MySQL进阶六、Redis和MongoDB需要学吗&#xff1f;七、如何…

代码随想录Day56

今天继续学习动规解决子序列问题。 674.最长连续递增子序列 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 …

GeoPandas 笔记:合并数据

很多地方和 pandas 笔记&#xff1a;合并操作_pandas 表格判断行空则合并行居中_UQI-LIUWJ的博客-CSDN博客是类似的 1 导入数据 import geopandas import pandas as pd world geopandas.read_file(geopandas.datasets.get_path(naturalearth_lowres)) world cities geopand…

《快速掌握PyQt5》专栏整理成书出版啦!

首先非常感谢大家对《快速掌握PyQt5》专栏的喜爱与支持&#xff01;该专栏现已整理成书出版&#xff0c;书名为《PyQt编程快速上手》。 本书内容在专栏内容的基础上进行了多方面的优化&#xff0c;内容更加丰富&#xff0c;知识点布局更加合理&#xff0c;代码和解释也更加简洁…

Zookeeper源码分析——ZK选举源码解析

ZK选举源码解析 Zookeeper选举机制——第一次启动 Zookeeper选举机制——非第一次启动 ZK选举源码解析 ZK选举准备源码解析 public synchronized void start() {if (!getView().containsKey(myid)) {throw new RuntimeException("My id " myid " not in the …

Camunda流程引擎 Modeler (二)

Camunda Modeler是Camunda官方提供的建模器&#xff1a; Modeler - 独立安装的建模器&#xff08;[windows、linux、mac] 一、下载camunda-modeler Download The Camunda BPMN / DMN Process Modeler | Camunda Release v5.10.0 camunda/camunda-modeler GitHubAn integrate…

深度强化学习【1】-强化学习入门必备基础(含Python迷宫游戏求解实例)

强化学习入门必备基础 文章目录 强化学习入门必备基础1. 强化学习与机器学习1.1 有监督学习1.2 半监督学习1.3 无监督学习1.4 强化学习1.5 深度学习 2. 强化学习中的一些概念2.1 智能体、动作、状态2.2 策略函数、奖励2.3 状态转移2.4 智能体与环境的交互过程2.5 折扣奖励2.6 动…

【Leetcode -21.合并两个有序链表 -83.删除排序链表中的重复元素】

Leetcode Leetcode-21.合并两个有序链表Leetcode-83.删除排序链表中的重复元素 Leetcode-21.合并两个有序链表 题目&#xff1a;将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 […

CUDA编程一天入门

目录 0 环境准备 1 套路 2 并行执行内核设置 3 示例代码simpleTexture3D 4 参考链接 0 环境准备 1 套路 CUDA 编程模型是一个异构模型&#xff0c;其中同时使用 CPU 和 GPU。在 CUDA 中&#xff0c;主机是指 CPU 及其内存&#xff0c;而设备是指 GPU 及其内存。在主机…

Prophet学习(三)饱和的预测与饱和最低

目录 饱和的预测&#xff08;Forecasting Growth&#xff09; 饱和最低&#xff08;Saturating Minimum&#xff09; 饱和的预测&#xff08;Forecasting Growth&#xff09; 默认情况下&#xff0c;Prophet使用线性模型进行预测。在预测增长时&#xff0c;通常有一个最大可达…

Ubuntu22.04lts NVIDIA驱动安装

1. NVIDIA驱动安装 1.1 手动安装 驱动下载地址&#xff1a;NVIDIA Driver Downloads 注意要在文本模式安装&#xff0c;进入文本模式的方法&#xff1a;sudo init 3。 返回图形化界面的方法sudo init 5 安装时报错&#xff1a; 安装NVIDIA驱动&#xff08;手动安装NVIDIA-L…

两种方式,轻松实现ChatGPT联网

两种方式效果&#xff1a; 方式一&#xff1a;浏览器搜索内嵌插件 方式二&#xff1a;官方聊天页内嵌插件 首先&#xff0c;要有一个谷歌浏览器&#xff0c;然后再安装一个叫ChatGPT for Google&#xff0c;直接在谷歌里搜一下就能找&#xff0c;也可以Chrome应用商店里搜索&a…

SAP批次主数据增强屏幕增强<转载>

原文链接&#xff1a;https://blog.csdn.net/hustliangchen/article/details/111163361 msc1n/msc2n/msc3n 批次增强 这几个事务码的主程序为SAPLCHRG&#xff0c;在如下图界面上有两块地方是可以做增强所预留的子屏幕&#xff0c;其中2是一个tab页签的子屏幕。注意版本较老的…

AI企划-《大明镇抚司到此一游》商业计划书

结合中国文化和当地资源打造的独特旅游产品 一、项目概述 本项目旨在利用中国文化特色&#xff0c;结合新西兰当地资源和市场需求&#xff0c;打造一款独特的旅游产品——“大明镇抚司到此一游”网红打卡点。该打卡点以大明镇抚司为主题&#xff0c;以大明小龙虾美食为特色&am…

千亿市场!低代码平台极大提升企业应用开发效率,颠覆传统模式!

背景 低代码平台的5个核心亮点&#xff1a; 可视化的表单设计&#xff1b; 2.可视化的审批流&#xff0c;逻辑流设计&#xff1b; 3.可视化的BI图标设计&#xff1b; 4.可视化的以应用为中心的开放和集成接口设计&#xff1b; 5.以应用为中心&#xff0c;依托于云原生技术的快…

线性表,栈和队列

什么是线性表&#xff1f; 线性表是由n个相同类型的数据元素组成的有限序列&#xff0c;它是最基本的一种线性结构。顾名思义&#xff0c;线性表就像是一条线&#xff0c;不会分叉。线性表有唯一的开始和结束&#xff0c;除了第一个元素外&#xff0c;每个元素都有唯一的直接前…

docker容器:docker资源管理

目录 一、docker资源控制 1、资源控制工具 2、设置CPU使用率上限 3、CPU压力测试 4、Cgroups限制cpu使用率 5、查看容器运行状态 6、 配置容器指定CPU 7、限制容器内存使用 8、对磁盘IO配额控制&#xff08;blkio&#xff09;的限制 二、docker数据管理 1、数据管理…