计算机视觉__基本图像操作(显示、读取、保存)

计算机视觉__基本图像操作(显示、读取、保存)

本文目录:

✨ 一、前言

✨ 二、图像显示(使用OpenCV和Matplotlib显示图像)

(1)、使用OpenCV显示图像

(2)、使用Matplotlib显示图像

✨ 三、图像读取

(1)、使用OpenCV读取图像

(2)、用Matplotlib读取图像

(2.1)使用OpenCV和Matplotlib结合读取图像实例

(2.2)使用Matplotlib读取图像实例

✨ 四、图像保存

(1)、使用OpenCV保存图像

(2)、用Matplotlib保存图像

(3)、图片保存实例

✨ 五、本章总结


✨ 一、前言

  图像显示、图像读取和图像保存是计算机视觉的基本操作,也是后续图像操作的基础。

  OpenCV是计算机视觉中经典的专用库,Matplotlib也是一种常用的图像处理库。

  OpenCV (Open Source Computer Vision Library),OpenCv 可以运行在多平台之上,轻量级而且高效,由一系列 C 函数和少量 C++类构成,提供了 Python、Ruby、MATLAB 等语言的接口。

  只有先获取图像之后,才能对图像进行操作处理,信息提取,结果输出,图像显示,图像保存。

  对于一个图像而言,

  OpenCV 中进行读取展示的步骤如下:

  •   图像读取;
  •   窗口创建;
  •   图像显示;
  •   图像保存;
  •   资源释放。

  OpenCV读取图像的基本函数有 :
  cv2.imread()、cv2.namedWindow()、cv2.imshow()、cv2.imwrite()、cv2.destroyWindow()、cv2.destroyAllWindows()、 cv2.imshow()、cv2.cvtColor()、cv2.imwrite()、cv2.waitKey()。

  注 意:
  使用OpenCV读取的图像的颜色通道为BGR(蓝绿红),

  Matplotlib使用的颜色通道为RGB(红绿蓝),

  所以如果要正常显示图像的颜色效果,需要进行颜色通道转换

  先将OpenCV读取的BGR(蓝绿红)颜色通道的图像转换为RGB(红绿蓝)颜色通道的图像,再使用Matplotlib正确显示图像。

✨ 二、图像显示(使用OpenCV和Matplotlib显示图像)

(1)、使用OpenCV显示图像

  OpenCV是计算机视觉中经典的专用库,功能强大。

  OpenCV-Python为OpenCV提供了Python接口,我们可以使用这个接口,实现图像操作的功能。

按如下步骤编写代码:(保存成:你的文件名.py,图片girl2a.jpg保存在同一个目录下)

① 、导入模块

import cv2

② 、读取图像

img=cv2.imread('girl2a.jpg')

③ 、创建窗口

cv2.namedWindow("逆境清醒")

④ 、使用OpenCV显示图像

cv2.imshow('逆境清醒',img)

代码解释:

cv2.imshow(window_name,img)

  • 函数在窗口中显示图像,窗口会自动适应不同的图像尺寸。
  • window_name:第一个参数window_name是窗口名称,字符串,可以根据需要创建任意多个窗口;
  • img:第二个参数img是图像名称。


⑤ 、等待键盘输入

cv2.waitKey(0)

代码解释:

cv2.waitKey(0)

  • 等待键盘输入,若未输入,则一直等待。
  • 这种等待效果可以保证我们刚才建立的图片窗口不会一闪而过,可以有足够的时间看清窗口内容。


⑥ 、销毁窗口

cv2.destroyAllWindows()

代码解释:

cv2.destroyAllWindows()

  • 销毁窗口

⑦、完整代码

import cv2
img=cv2.imread('girl2a.jpg')
cv2.namedWindow("逆境清醒")
cv2.imshow('逆境清醒',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

⑧、运行效果如图所示
 


(2)、使用Matplotlib显示图像

  Matplotlib也是一种常用的图像处理库。

  可用matplotlib.pyplot.imshow(img)函数来显示图像,参数img代表图像对象,参数较少,使用便捷。

按如下步骤编写代码:(保存成:你的文件名.py,图片girl2a.jpg保存在同一个目录下)

① 、导入模块

import cv2
import matplotlib.pyplot as plt

② 、读取图像

image=cv2.imread('girl2a.jpg')

③ 、将颜色通道从BGR转换为RGB

image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

④ 、使用Matplotlib显示图像

plt.imshow(image)
plt.show()

⑤ 、完整代码

import cv2
import matplotlib.pyplot as plt
image=cv2.imread('girl2a.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
#image=image[:,:,::-1]
plt.imshow(image)
plt.show()

⑥、运行效果如图所示


✨ 三、图像读取

  用OpenCV或Matplotlib读取一张图像,读取格式为单通道灰度图和三通道彩色图。

(1)、使用OpenCV读取图像

  cv2.imread(filename,flags)函数,

作用:读取图像。返回值是一个nparray 多维数组。OpenCV 对图像的任何操作,本质上就是对 Numpy 多维数组的运算。

  • filename:第一个参数filename是图像地址,图像应该存储在工作目录中或给出图像的完整路径。即使图像路径错误,也不会引发任何错误,但是在打印图像时系统会给出None。
  • flags:第二个参数flags,是一个标志,指定了读取图像的方式。
  • 如果无法读取图像(文件丢失,权限不正确,格式不支持或无效),该函数返回一个空矩阵。
  • 必须使用中文时,可以使用 cv2.imdecode() 处理
  • 读取图像时默认忽略透明通道,但可以使用 CV_LOAD_IMAGE_UNCHANGED 参数读取透明通道。
  • 对于彩色图像,可以使用 flags=0 按照读取为灰度图像。
  • OpenCV 中彩色图像使用 BGR 格式,而 PIL、PyQt、matplotlib 等库使用的是 RGB 格式。
参数flags:读取图像的方式
数值含义
-1保持原格式不变 (原来是灰度图像就是灰度图像,原来是彩色图像,就是彩色图像)
0将图像调整为单通道灰度图像
1将图像调整为3通道BGR图像
2当载入图像为16位或32位时,返回其对应的深度图像;否则,将其转换为8位图像
4以任何可能的颜色格式读取图像
8使用gdal驱动程序加载图像


 

目前支持的文件格式:
Windows 位图* .bmp,* .dib
JPEG 文件* .jpeg,* .jpg,*.jpe
JPEG 2000文件* .jp2
便携式网络图形* .png
WebP* .webp
便携式图像格式* .pbm,* .pgm,* .ppm * .pxm,* .pnm
TIFF 文件* .tiff,* .tif

该函数的返回值是图像数字矩阵,

维度如下:
(M,N):用于灰度图。
(M,N,3):用于RGB彩色图。

cv2.cvtColor(img,color_change)函数对颜色维度进行转换

  • img:第一个参数img是图像对象。
  • color_change:第二个参数color_change是cv2.COLOR_BGR2GRAY(OpenCV定义的常数),用来将BGR通道彩色图转换为灰度图。

该函数返回修改后的图像数字矩阵。

color_change 参数:
cv2.IMREAD_COLOR默认1加载彩色图。任何图像的透明度都会被忽视,
cv2.IMREAD_GRAYSCALE默认0以灰度模式(黑白图像)加载图像
cv2.IMREAD_UNCHANGED默认-1加载图像,包括alpha通道,可以用-1代替。
cv2.IMREAD_ANYDEPTH默认2在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位
cv2.IMREAD_ANYCOLOR默认4以任何可能的颜色格式读取图像

读取一张图像,读取格式为单通道灰度图

按如下步骤编写代码:(保存成:你的文件名.py,图片girl2a.jpg保存在同一个目录下)

① 、导入模块

import cv2
import matplotlib.pyplot as plt

② 、读取图像

image_gray=cv2.imread("girl2a.jpg",flags=0)

③ 、加载灰度图

plt.imshow(image_gray,cmap="gray")

④ 、显示图像

plt.show()

⑤ 、完整代码

import cv2
import matplotlib.pyplot as plt
image_gray=cv2.imread("girl2a.jpg",flags=0)
plt.imshow(image_gray,cmap="gray")
plt.show()

⑥、运行效果如图所示


(2)、用Matplotlib读取图像

可用matplotlib.pyplot.imread(fname,format=None)函数来读取图像。

  • fname:第一个参数fname是图像路径;
  • format:第二个参数format是图像格式,默认值是None。

如果没有提供图像格式,则imread()函数会从fname中提取图像格式。

该函数的返回值是图像数字矩阵,

维度如下:
(M,N):用于灰度图。
(M,N,3):用于RGB彩色图。

(2.1)使用OpenCV和Matplotlib结合读取图像实例

① 、导入模块

import cv2
import matplotlib.pyplot as plt

② 、读取图像

image_bgr=cv2.imread("girl2a.jpg",flags=1)

③ 、显示图像

plt.imshow(image_bgr)
plt.show()

④ 、运行效果如图所示

此时,颜色不是正常的rgb,而是bgr格式

我们需要修改代码

⑤ 、将图像的格式转为rgb格式

image_rgb=image_bgr[:,:,::-1]

⑥ 、显示图像

plt.imshow(image_rgb)
plt.show()

⑦、完整代码

import cv2
import matplotlib.pyplot as plt
image_bgr=cv2.imread("girl2a.jpg",flags=1)
image_rgb=image_bgr[:,:,::-1]
#image_rgb=cv2.cvtColor(image_bgr,cv2.COLOR_BGR2RGB)
plt.imshow(image_rgb)
plt.show()

⑧、运行效果如图所示

(2.2)使用Matplotlib读取图像实例

① 、导入模块

import matplotlib.pyplot as plt

② 、读取图像

image_rgb=plt.imread("girl2a.jpg")

③ 、显示图像

plt.imshow(image_rgb)
plt.show()

④ 、完整代码

import matplotlib.pyplot as plt
image_rgb=plt.imread("girl2a.jpg")
plt.imshow(image_rgb)
plt.show()

⑤ 、运行效果如图所示


✨ 四、图像保存

(1)、使用OpenCV保存图像

在OpenCV中,可用 cv2.imwrite(dir,img)函数来保存图像。

  • dir:第一个参数dir是图像存储的位置。
  • img:第二个参数img是图像对象。
  • 函数 cv2.imwrite() 用于将图像保存到指定的文件。只能保存 BGR 3通道图像,或 8 位单通道图像、或 PNG/JPEG/TIFF 16位无符号单通道图像。

定义:cv2.imwrite(filename, img [, paras])

参数说明:

  • filename:要保存的文件的路径和名称,包括文件扩展名
  • img:要保存的 OpenCV 图像,nparray 多维数组
  • paras:不同编码格式的参数,可选项

paras:不同编码格式的参数
cv2.CV_IMWRITE_JPEG_QUALITY:设置 .jpeg/.jpg 格式的图片质量,取值为 0-100(默认值 95),数值越大则图片质量越高;
cv2.CV_IMWRITE_WEBP_QUALITY:设置 .webp 格式的图片质量,取值为 0-100;
cv2.CV_IMWRITE_PNG_COMPRESSION:设置 .png 格式图片的压缩比,取值为 0-9(默认值 3),数值越大则压缩比越大。
retval:返回值,保存成功返回 True,否则返回 False。

OpenCV cv2.imwrite
该函数在默认情况下,该函数的保存结果为8位单通道图像和BGR图像。

  • cv2.imwrite() 保存的是 OpenCV 图像(多维数组)ndarray(numpy数组),不是 cv2.imread() 读取的图像文件,所保存的文件格式是由 filename 的扩展名决定的,与读取的图像文件的格式无关。
  • 对 4 通道 BGRA 图像,可以使用 Alpha 通道保存为 PNG 图像。
  • cv2.imwrite() 指定图片的存储路径和文件名,不支持中文和空格(不会报错)。必须使用中文时,可以使用 cv2.imencode() 处理

使用OpenCV保存成以8位无符号整型表示的像素点。

import numpy as np
import cv2
import matplotlib.pyplot as plt
image_array=np.array([
[[235,198,148],[238,203,153],[241,207,161]],
[[250,227,205],[255,232,210],[255,238,216]],
[[234,197,147],[237,202,152],[240,206,160]],
[[247,229,206],[250,232,209],[255,237,214]],
[[231,194,144],[234,199,149],[238,204,158]],
[[244,230,207],[246,232,209],[249,235,212]],
[[173,144,77],[158,129,60],[159,130,61]],
[[117,197,136],[101,181,120],[103,183,122]]
],dtype=np.uint8)
cv2.imwrite("wimg1.jpg",image_array)
image1=cv2.imread("wimg1.jpg")
image1=cv2.cvtColor(image1,cv2.COLOR_BGR2GRAY)
plt.imshow(image1)
plt.show()

运行效果如图所示:

使用OpenCV保存成以64位浮点型表示的像素点。

import numpy as np
import cv2
import matplotlib.pyplot as plt
image_array=np.array([
[[235,198,148],[238,203,153],[241,207,161]],
[[250,227,205],[255,232,210],[255,238,216]],
[[234,197,147],[237,202,152],[240,206,160]],
[[247,229,206],[250,232,209],[255,237,214]],
[[231,194,144],[234,199,149],[238,204,158]],
[[244,230,207],[246,232,209],[249,235,212]],
[[173,144,77],[158,129,60],[159,130,61]],
[[117,197,136],[101,181,120],[103,183,122]]
],dtype=np.float64)
cv2.imwrite("wimg2.jpg",image_array)
image2=cv2.imread("wimg2.jpg")
image2=cv2.cvtColor(image2,cv2.COLOR_BGR2GRAY)
plt.imshow(image2)
plt.show()

运行效果如图所示:

我们打开刚才系统保存的两个文件:wimg1.jpg和wimg2.jpg

图片较小,我们将它们放大3200倍看一下:

wimg1.jpgwimg2.jpg


(2)、用Matplotlib保存图像

用matplotlib.pyplot.imsave(dir,img,**kwargs)函数来保存图像。

  • dir:第一个参数dir是图像存储的位置。
  • img:第二个参数img是图像对象。
  • **kwargs:第三个参数**kwargs是一个字典参数,参数较多

下面是几个常用的参数值。

参  数说          明
format指明图像格式,可能的格式有png、pdf、svg、etc,支持大多数图像格式。
dpi分辨率,用于调整图像的清晰度。
cmap颜色映射,对于彩色图像此参数被忽略,只对灰度图像有效。

使用Matplotlib保存成以8位无符号整型表示的像素点。

import numpy as np
import matplotlib.pyplot as plt
image_array=np.array([
[[1,0,1],[0,1,0],[0,0,1]],
[[0,1,1],[1,1,0],[1,0,1]],
[[1,0,0],[0,0,0],[0,1,1]],
[[1,1,1],[1,1,1],[1,0,1]],
[[0,0,0],[1,1,0],[0,1,1]],
[[1,0,0],[0,1,0],[0,0,0]],
[[0,0,1],[1,1,1],[0,0,1]],
[[1,0,0],[0,0,1],[1,1,1]]
],dtype=np.uint8)
plt.imsave("wimg3.jpg",image_array)
image3=plt.imread("wimg3.jpg")
plt.imshow(image3)
plt.show()

运行效果如图所示:

使用Matplotlib保存成以64位浮点型表示的像素点。

import numpy as np
import matplotlib.pyplot as plt
image_array=np.array([
[[1,0,1],[0,1,0],[0,0,1]],
[[0,1,1],[1,1,0],[1,0,1]],
[[1,0,0],[0,0,0],[0,1,1]],
[[1,1,1],[1,1,1],[1,0,1]],
[[0,0,0],[1,1,0],[0,1,1]],
[[1,0,0],[0,1,0],[0,0,0]],
[[0,0,1],[1,1,1],[0,0,1]],
[[1,0,0],[0,0,1],[1,1,1]]
],dtype=np.float64)
plt.imsave("wimg4.jpg",image_array)
image4=plt.imread("wimg4.jpg")
plt.imshow(image4)
plt.show()

运行效果如图所示:


 

我们打开刚才系统保存的两个文件:wim3.jpg和wimg4.jpg

图片较小,我们将它们放大3200倍看一下:

wimg3.jpgwimg4.jpg

(3)、图片保存实例

import cv2
import numpy as np
# 读取图片文件
imgFile = "girl2a.jpg" 
# flags=1 读取彩色图像(BGR)
img3 = cv2.imread(imgFile, flags=1)  
saveFile= "test.jpg"
# 保存图片时带有中文名字
saveFile1 = "测试girl2a.jpg"  
# 将读取的图片保存成普通英文名格式
cv2.imwrite(saveFile, img3)  
# 将读取的图片保存成中文名格式
img_write = cv2.imencode(".jpg", img3)[1].tofile(saveFile1)

运行结果:

文件夹内出现两个新的图片,一个是英文名:test.jpg;另一个是中文名:测试girl2a.jpg


✨ 五、本章总结

图像是由三维数组组成的数据形式,三维数组分别对应宽度、高度、通道数。

灰度图为单通道图像,

彩色图为三通道图像。

OpenCV 使用BGR通道方式读取图像。

Matplotlib 使用RGB通道方式读取图像。

更多《 计算机视觉 》相关文章更新中。。。


 

          推荐阅读:

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

 语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png

cb4b0d4015404390a7b673a2984d676a.png

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png

938bc5a8bb454a41bfe0d4185da845dc.jpeg

0a4256d5e96d4624bdca36433237080b.png

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg

0f09e73712d149ff90f0048a096596c6.png

40e8b4631e2b486bab2a4ebb5bc9f410.png

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png

daecd7067e7c45abb875fc7a1a469f23.png

17b403c4307c4141b8544d02f95ea06c.png

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png

c5feeb25880d49c085b808bf4e041c86.png

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png

bba02a1c4617422c9fbccbf5325850d9.png

37d6aa3e03e241fa8db72ccdfb8f716b.png

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png

6176c4061c72430eb100750af6fc4d0e.png

1f53fb9c6e8b4482813326affe6a82ff.png

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

80007dbf51944725bf9cf4cfc75c5a13.png

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg

1750390dd9da4b39938a23ab447c6fb6.jpeg

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2023年4月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png

38266b5036414624875447abd5311e4d.png

6824ba7870344be68efb5c5f4e1dbbcf.png

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

fffa2098008b4dc68c00a172f67c538d.png

5218ac5338014f389c21bdf1bfa1c599.png

c6374d75c29942f2aa577ce9c5c2e12b.png

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电磁兼容(EMC)的标准与测试内容

在国际范围上,电磁兼容标准的制定已经有了70多年的发展历程,最早为了保护无线电通信和广播,国际无线电干扰特别委员会(CISPR)对各种用电设备和系统提出了相关的电磁干扰发射限值和测量方法。到了20世纪60~7…

被裁了,39 岁阿里 P9,攒下 1.5 亿....

今天刷知乎,在问题 “40 岁因为财务自由决定不上班的人,个人资产总和到底有多少” 下看到一位阿里 P9 的匿名回答让我狠狠的酸了一把~ 这刚刚失业的四十岁高级码农自曝了自己的人生经历,作为一名“阿里 P9”的程序员,他讲述了自己…

聚观早报|阿里云正式推出通义千问;京东零售开启5年最大组织变革

今日要闻:国家网信办规范生成式人工智能服务;阿里云正式推出通义千问;京东零售开启5年来最大组织变革;飞书将推出智能AI助手「My AI」;乐高将继续扩大在华零售布局 国家网信办规范生成式人工智能服务 4 月 11 日&…

redis——使用

session缓存缓存更新方式删除缓存vs更新缓存缓存和数据库操作原子性缓存和数据库操作顺序结论 缓存问题缓存穿透缓存雪崩缓存击穿 全局唯一ID数据并发线程安全单体分布式redis分布式锁的问题 redis消息队列listpubsubstream 消息推送 session 问题:session存在tomca…

nginx简单使用与配置

nginx简单使用与配置 Nginx 是一个高性能的HTTP和反向代理web服务器、一个邮件代理服务器,一个通用的 TCP/UDP 代理服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。 前端可以通过nginx实现以下功能&#xff1a…

DAY 34 正则表达式

正则表达式 REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式, 其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能, 类似于增强版的通配符功能,但…

Linux--tty

Linux 终端(TTY) TTY 是 Teletype 或 Teletypewriter 的缩写,原来是指电传打字机,后来这种设备逐渐键盘和显示器取代。不管是电传打字机还是键盘显示器,都是作为计算机的终端设备存在的,所以 TTY 也泛指计算机的终端(terminal)设…

【面试】你在项目中遇到过慢查询问题吗?你是怎么做SQL优化的?

文章目录 前言一、找出有问题的SQL1、系统层面2、SQL语句层面 二、查看SQL执行计划三、SQL优化案例慢查询优化步骤 SQL优化小结 前言 我在面试的时候很喜欢问候选人这样一个问题:“你在项目中遇到过慢查询问题吗?你是怎么做SQL优化的?” 很多…

基于DSP+FPGA的多轴运动控制平台(一)硬件设计

2 实验平台总体方案与硬件设计 2.1.1 实验平台的功能需求分析 针对便于多轴运动控制技术的研究,培养此方面技术的人才,实验平台应能 对多轴运动实现高速高精度的控制效果,同时保证系统开放性和兼容多种算法及 参数的运行。 实验过程契合…

TCP/IP协议及配置

文章目录 一、TCP/IP概述1. TCP/IP协议族2. 主机与主机之间通信的三个要素 二、什么是IP地址1. 用来标识一个网络节点的互联网地址(如同电话的号码)2. IPv4地址组成 三、IP地址分类1. 常用的IP地址2. 组播及科研专用 四、IP地址分类(续&#…

wait 和 notify

wait 和 notify 7. wait 和 notify7.1 wait()方法7.2 notify()方法★★★wait和notify代码wait 需要搭配 synchronized 7.3 notifyAll()方法7.4 wait 和 sleep 的对比(面试题) 7. wait 和 notify 保证其他线程可以正常进行 由于线程之间是抢占式执行的, …

为什么你这么累,销量还不如那些轻松工作的同行?

管理混乱 忙碌却不见成效 在工业品行业做了10多年的小张,最近向我吐槽:每天忙得团团转,结果销售业绩还不如那些整天轻松工作的同行。几番沟通下来,发现小张每天要做这么多的工作,不忙才怪! 管理员工&#x…

系统安全及应用

目录 一、账号安全控制 1)系统账号清理 2)密码安全控制 chage命令 示例 3)命令历史限制 4)终端自动注销 总结 账号安全 密码安全 二、系统引导和登录控制 1)使用su命令切换用户 用途及用…

生产管理系统是什么?它有哪些功能模块?

阅读本文您将了解:1.企业生产管理的问题;2.生产管理系统模块有哪些;3.如何利用生产管理系统模块解决问题。 一、企业生产管理会遇到哪些问题? 生产管理是有计划、组织、指挥、监督调节的生产活动。以最少的资源损耗,…

风电的Weibull分布及光电的Beta分布组合研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

九龙证券|服务器龙头获资金连续抢筹,尾盘主力抢筹前期大热门股

今天,核算机职业取得主力大手笔抢筹。 今天主力资金净流出53.89亿元,其间创业板净流出3.19亿元,沪深300成份股净流出7.61亿元。 申万一级职业中,今天有19个职业上涨,传媒职业接连两日均涨近5%,居首位&…

OA系统的功能和作用是什么(OA系统百科)

OA系统的功能和作用是什么(OA系统百科)。OA系统是一种非常实用的企业内部管理系统,它可以帮助公司实现各项管理工作,可以说是整个公司和团队的纽带,有助于提高工作效率和管理水平。 具体来说,OA系统的作用…

换电脑 NoteExpress 数据备份迁移

前言 主要操作是跟着这篇博客做的:NoteExpress数据库备份和转移。但也有一些不一样的地方 旧电脑NoteExpress(NE)版本3.7,新电脑版本3.8 旧电脑 导出配置文件 桌面找到图标,打开位置,点击配置备份(绿色的图标&#…

wordpres漏洞扫描器——wpscan

WordPress 使用PHP语言开发的博客平台 WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。 WordPress是一款个人博客系统&#xff0c…

SpringBoot 整合 RabbitMQ (四十一)

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。 上一章简单介绍了SpringBoot 实现 Web 版本控制 (四十),如果没有看过,请观看上一章 关于消息中间件 RabbitMQ, 可以看老蝴蝶之前的文章: https://blog.csdn.net/yjltx1234csdn/categor…