当前位置: 首页 > news >正文

seo网站内容长沙公司网络推广

seo网站内容,长沙公司网络推广,wordpress美文主题,潍坊高端网站建设价格文章目录 1.图像的 IO 操作1.1 图像读取 imread1.2 图像显示1.2.1 opencv 方式1.2.2 matplotlib 方式 1.3 图像保存 imwrite 2.绘制几何图形1. 绘制直线2. 绘制矩形3. 绘制圆形4. 绘制多边形5. 添加文字 3.获取并修改图像中的像素点3.1 获取像素值3.2 修改像素值3.3 获取和修改… 文章目录 1.图像的 IO 操作1.1 图像读取 imread1.2 图像显示1.2.1 opencv 方式1.2.2 matplotlib 方式 1.3 图像保存 imwrite 2.绘制几何图形1. 绘制直线2. 绘制矩形3. 绘制圆形4. 绘制多边形5. 添加文字 3.获取并修改图像中的像素点3.1 获取像素值3.2 修改像素值3.3 获取和修改区域像素值 4.获取图像属性4.1 获取图像属性详细解释 4.2 处理灰度图像 5.图像通道的拆分与合并5.1 图像通道的拆分5.2 图像通道的合并5.3 修改单个通道并合并 6.色彩空间的改变详细解释为什么需要将 HSV 和 Lab 图像先转换回 RGB 格式再显示1. matplotlib 期望的颜色格式是 RGB2. 可视化的直观性3. 避免误解 1.图像的 IO 操作 1.1 图像读取 imread 使用cv2.imread函数可以读取图像。该函数有两个参数 第一个参数是图像文件的路径。第二个参数是读取模式可以是以下几种 cv2.IMREAD_COLOR读取彩色图像默认。cv2.IMREAD_GRAYSCALE读取灰度图像。cv2.IMREAD_UNCHANGED读取图像并包括图像的alpha通道。 示例 import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1.读取图像 # 读取彩色图像 image cv.imread(../images/iu.jpg, cv.IMREAD_COLOR)# 读取灰度图像 image_gray cv.imread(../images/iu.jpg, cv.IMREAD_GRAYSCALE)1.2 图像显示 图像显示主要有两种方式OpenCV 提供的 imshow 函数和 matplotlib 库提供的 imshow 函数。 1.2.1 opencv 方式 使用 cv2.imshow 函数可以显示图像。该函数有两个参数 第一个参数是窗口的名称。第二个参数是要显示的图像。 使用 cv2.waitKey 函数可以等待按键事件。该函数的参数是等待的时间毫秒如果设置为0则无限等待。 使用cv2.destroyAllWindows函数可以关闭所有窗口。 示例 import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1.读取图像# 读取彩色图像 image cv.imread(../images/iu.jpg, cv.IMREAD_COLOR)# 读取灰度图像 image_gray cv.imread(../images/iu.jpg, cv.IMREAD_GRAYSCALE)# 2.显示图像 # 2.1 opencv 显示 cv.imshow(iu, image) cv.imshow(gray, image_gray) cv.waitKey(0) cv.destroyAllWindows()但是由于使用 opencv 提供的 imshow 函数时会创建新的窗口显示图像不方便观察所以后面一般会用另外一种方式。 1.2.2 matplotlib 方式 转换颜色空间 由于OpenCV 读取的图像是 BGR 格式而 matplotlib 显示图像时使用的是 RGB 格式。因此需要将 BGR 图像转换为 RGB 图像此时也是有两种方式 使用 cvtColor 进行转换 image_rgb cv2.cvtColor(image, cv2.COLOR_BGR2RGB) plt.imshow(image_rgb)使用矩阵转换 plt.imshow(image[:,:,::-1])示例 第一种方式 import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1.读取图像# 读取彩色图像 image cv.imread(../images/iu.jpg, cv.IMREAD_COLOR)# 读取灰度图像 image_gray cv.imread(../images/iu.jpg, cv.IMREAD_GRAYSCALE)# 2.2 plt 读取# 第一种方式 image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB)# 彩色图像显示 plt.imshow(image_rgb) plt.show()第二种方式 import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1.读取图像# 读取彩色图像 image cv.imread(../images/iu.jpg, cv.IMREAD_COLOR)# 读取灰度图像 image_gray cv.imread(../images/iu.jpg, cv.IMREAD_GRAYSCALE)# 2.2 plt 读取# 第二种方式 plt.imshow(image[:,:,::-1]) # 彩色图像显示 plt.show()1.3 图像保存 imwrite 使用 cv2.imwrite 函数可以保存图像。该函数有两个参数 第一个参数是保存的文件路径。第二个参数是要保存的图像。 示例 import numpy as np import cv2 as cv import matplotlib.pyplot as plt# 1.读取图像# 读取彩色图像 image cv.imread(../images/iu.jpg, cv.IMREAD_COLOR)# 读取灰度图像 image_gray cv.imread(../images/iu.jpg, cv.IMREAD_GRAYSCALE)# 2.显示图像 # 2.1 opencv 读取 # cv.imshow(iu, image) # cv.imshow(gray, image_gray) # cv.waitKey(0) # cv.destroyAllWindows()# 2.2 plt 读取# 第一种方式 # image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB)# 彩色图像读取 # plt.imshow(image_rgb)# 第二种方式 # plt.imshow(image[:,:,::-1]) # 彩色图像读取 # plt.show()# 3.图像保存 cv.imwrite(../images/iu_rgb.jpg, image) cv.imwrite(../images/iu_gray.jpg, image_gray)2.绘制几何图形 在OpenCV中可以使用一系列绘图函数在图像上绘制几何图形和添加文字。这些函数包括绘制直线、矩形、圆形、多边形以及添加文本等。以下是如何使用这些函数的详细步骤和示例代码。 1. 绘制直线 使用 cv2.line 函数可以在图像上绘制直线。该函数的参数包括 图像对象起点坐标终点坐标颜色BGR格式线条粗细可选 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 绘制一条白色直线 cv.line(image, (0, 0), (511, 511), (255, 255, 255), 5)# 显示图像 plt.imshow(image[:,:,::-1]) plt.show()2. 绘制矩形 使用 cv2.rectangle 函数可以在图像上绘制矩形。该函数的参数包括 图像对象左上角坐标右下角坐标颜色BGR格式线条粗细如果为负值则填充矩形 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 绘制一条白色直线 cv.line(image, (0, 0), (511, 511), (255, 255, 255), 5)# 绘制一个绿色矩形 cv.rectangle(image, (100, 100), (400, 400), (0, 255, 0), 3)# 显示图像 plt.imshow(image[:,:,::-1]) plt.show()3. 绘制圆形 使用 cv2.circle 函数可以在图像上绘制圆形。该函数的参数包括 图像对象圆心坐标半径颜色BGR格式线条粗细如果为负值则填充圆形 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 绘制一条白色直线 cv.line(image, (0, 0), (511, 511), (255, 255, 255), 5)# 绘制一个绿色矩形 cv.rectangle(image, (100, 100), (400, 400), (0, 255, 0), 3)# 绘制一个红色圆形 cv.circle(image, (256, 256), 100, (0, 0, 255), -1)# 显示图像 plt.imshow(image[:,:,::-1]) plt.show()4. 绘制多边形 使用 cv2.polylines 函数可以在图像上绘制多边形。该函数的参数包括 图像对象顶点坐标数组是否闭合颜色BGR格式线条粗细 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 绘制一条白色直线 cv.line(image, (0, 0), (511, 511), (255, 255, 255), 5)# 绘制一个绿色矩形 cv.rectangle(image, (100, 100), (400, 400), (0, 255, 0), 3)# 绘制一个红色圆形 cv.circle(image, (256, 256), 100, (0, 0, 255), -1)# 定义多边形的顶点 points np.array([[100, 50], [200, 300], [70, 200], [50, 100]], np.int32) points points.reshape((-1, 1, 2))# 绘制一个蓝色多边形 cv.polylines(image, [points], True, (255, 0, 0), 3) # 显示图像 plt.imshow(image[:,:,::-1]) plt.show()5. 添加文字 使用 cv2.putText 函数可以在图像上添加文字。该函数的参数包括 图像对象文字内容文字起点坐标字体类型字体大小颜色BGR格式线条粗细 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 绘制一条白色直线 cv.line(image, (0, 0), (511, 511), (255, 255, 255), 5)# 绘制一个绿色矩形 cv.rectangle(image, (100, 100), (400, 400), (0, 255, 0), 3)# 绘制一个红色圆形 cv.circle(image, (256, 256), 100, (0, 0, 255), -1)# 定义多边形的顶点 points np.array([[100, 50], [200, 300], [70, 200], [50, 100]], np.int32) points points.reshape((-1, 1, 2))# 绘制一个蓝色多边形 cv.polylines(image, [points], True, (255, 0, 0), 3) # 显示图像# 添加白色文字 cv.putText(image, Hello, OpenCV!, (50, 250), cv.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)plt.imshow(image[:,:,::-1]) plt.show()3.获取并修改图像中的像素点 在OpenCV中可以非常方便地获取和修改图像中的像素点。图像在OpenCV中被表示为一个NumPy数组因此可以使用NumPy的索引和切片操作来访问和修改图像的像素值。 3.1 获取像素值 要获取图像中某个像素点的值可以使用数组索引。对于彩色图像像素值是一个包含三个元素的数组分别表示B、G、R三个通道的值。对于灰度图像像素值是一个单一的灰度值。 示例 import cv2 as cv# 读取彩色图像 image cv.imread(../images/iu.jpg)# 获取某个像素点的值 (x100, y100) pixel_value image[100, 100] print(Pixel value at (100, 100):, pixel_value)# 获取某个像素点的蓝色通道值 blue_value image[100, 100, 0] print(Blue channel value at (100, 100):, blue_value)# 获取某个像素点的绿色通道值 green_value image[100, 100, 1] print(Green channel value at (100, 100):, green_value)# 获取某个像素点的红色通道值 red_value image[100, 100, 2] print(Red channel value at (100, 100):, red_value)3.2 修改像素值 要修改图像中某个像素点的值可以直接使用数组索引进行赋值操作。对于彩色图像可以分别修改B、G、R三个通道的值。 示例 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 修改某个像素点的值 (x100, y100) image[100, 100] [0, 255, 0] # 将该像素点设置为绿色# 修改某个像素点的蓝色通道值 image[100, 100, 0] 255 # 将该像素点的蓝色通道值设置为255# 修改某个像素点的绿色通道值 image[100, 100, 1] 0 # 将该像素点的绿色通道值设置为0# 修改某个像素点的红色通道值 image[100, 100, 2] 0 # 将该像素点的红色通道值设置为0# 显示修改后的图像 plt.imshow(image[:,:,::-1]) plt.show()3.3 获取和修改区域像素值 除了单个像素点还可以获取和修改图像的某个区域。可以使用NumPy的切片操作来实现。 示例 import cv2 as cv import numpy as np import matplotlib.pyplot as plt# 创建一个空白图像 image np.zeros((512, 512, 3), np.uint8)# 获取某个区域的像素值 (从x100, y100到x200, y200) region image[100:200, 100:200] print(Region shape:, region.shape)# 修改某个区域的像素值 (从x100, y100到x200, y200) image[100:200, 100:200] [0, 255, 0] # 将该区域设置为绿色# 显示修改后的图像 plt.imshow(image[:,:,::-1]) plt.show()4.获取图像属性 在OpenCV中可以通过读取图像的属性来获取图像的基本信息例如图像的尺寸、通道数、数据类型等。这些属性可以帮助你了解图像的基本结构和格式从而更好地进行图像处理和分析。 4.1 获取图像属性 以下是一些常用的图像属性及其获取方法 图像的形状尺寸可以使用NumPy数组的 shape 属性来获取图像的尺寸。图像的大小像素数可以使用NumPy数组的 size 属性来获取图像的总像素数。图像的数据类型可以使用NumPy数组的 dtype 属性来获取图像的数据类型。 示例 以下是一个示例代码演示如何获取图像的这些属性 import cv2 as cv# 读取图像 image cv.imread(../images/iu.jpg)# 获取图像的形状尺寸 height, width, channels image.shape print(Height:, height) print(Width:, width) print(Channels:, channels)# 获取图像的大小像素数 size image.size print(Size (number of pixels):, size)# 获取图像的数据类型 dtype image.dtype print(Data type:, dtype)详细解释 图像的形状尺寸 image.shape 返回一个包含三个元素的元组分别表示图像的高度、宽度和通道数。对于灰度图像image.shape 返回的元组只有两个元素分别表示图像的高度和宽度。 图像的大小像素数 image.size 返回图像的总像素数即高度、宽度和通道数的乘积。 图像的数据类型 image.dtype 返回图像的数据类型通常是 uint8表示每个像素值是一个8位无符号整数。 4.2 处理灰度图像 如果你处理的是灰度图像获取属性的方式略有不同因为灰度图像只有两个维度高度和宽度。 import cv2 as cv# 读取灰度图像 gray_image cv.imread(example.jpg, cv.IMREAD_GRAYSCALE)# 获取图像的形状尺寸 height, width gray_image.shape print(Height:, height) print(Width:, width)# 获取图像的大小像素数 size gray_image.size print(Size (number of pixels):, size)# 获取图像的数据类型 dtype gray_image.dtype print(Data type:, dtype)5.图像通道的拆分与合并 在OpenCV中可以使用 cv2.split 函数将彩色图像的通道拆分为单独的灰度图像并使用 cv2.merge 函数将多个单通道图像合并为一个多通道图像。这些操作在图像处理和计算机视觉任务中非常常见和有用。 5.1 图像通道的拆分 cv2.split 函数可以将彩色图像的B、G、R三个通道拆分为三个单独的灰度图像。 示例 import cv2 as cv import matplotlib.pyplot as plt# 读取彩色图像 image cv.imread(../images/iu.jpg)# 拆分图像的B、G、R通道 b_channel, g_channel, r_channel cv.split(image)# 将BGR图像转换为RGB图像 image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB)# 显示原始图像和拆分后的通道图像 plt.figure(figsize(10, 7))# 显示原始图像 plt.subplot(2, 2, 1) plt.imshow(image_rgb) plt.title(Original Image (RGB)) plt.axis(off)# 显示蓝色通道 plt.subplot(2, 2, 2) plt.imshow(b_channel, cmapgray) plt.title(Blue Channel) plt.axis(off)# 显示绿色通道 plt.subplot(2, 2, 3) plt.imshow(g_channel, cmapgray) plt.title(Green Channel) plt.axis(off)# 显示红色通道 plt.subplot(2, 2, 4) plt.imshow(r_channel, cmapgray) plt.title(Red Channel) plt.axis(off)plt.show()5.2 图像通道的合并 cv2.merge 函数可以将多个单通道图像合并为一个多通道图像。通常用于将拆分后的通道重新合并为一个彩色图像。 示例 import cv2 as cv import matplotlib.pyplot as plt# 读取彩色图像 image cv.imread(../images/iu.jpg)# 拆分图像的B、G、R通道 b_channel, g_channel, r_channel cv.split(image)# 将BGR图像转换为RGB图像 image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB)# 合并B、G、R通道 merged_image cv.merge([b_channel, g_channel, r_channel])# 显示合并通道后的图像 plt.imshow(merged_image[:,:,::-1]) plt.show()5.3 修改单个通道并合并 你还可以在拆分通道后对单个通道进行修改然后再合并回去。例如将图像的红色通道设置为零。 示例 import cv2 as cv import matplotlib.pyplot as plt# 读取彩色图像 image cv.imread(../images/iu.jpg)# 拆分图像的B、G、R通道 b_channel, g_channel, r_channel cv.split(image)# 将BGR图像转换为RGB图像 image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB)# # 将红色通道设置为零 # r_channel[:] 0# 合并B、G、R通道 merged_image cv.merge([b_channel, g_channel, r_channel])# 显示合并通道后的图像 plt.imshow(merged_image[:,:,::-1]) plt.show()6.色彩空间的改变 在图像处理和计算机视觉中改变色彩空间是一个常见的操作。OpenCV 提供了多种色彩空间转换函数可以方便地在不同色彩空间之间进行转换。常见的色彩空间包括 BGR、RGB、HSV、Lab 等。 OpenCV 提供了 cv.cvtColor 函数来进行色彩空间的转换。以下是一些常见的色彩空间转换 BGR 到 RGBcv.COLOR_BGR2RGBBGR 到 灰度cv.COLOR_BGR2GRAYBGR 到 HSVcv.COLOR_BGR2HSVBGR 到 Labcv.COLOR_BGR2Lab 示例 import cv2 as cv import matplotlib.pyplot as plt# 读取彩色图像 image cv.imread(../images/iu.jpg)# BGR 转 RGB image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB)# BGR 转 灰度 image_gray cv.cvtColor(image, cv.COLOR_BGR2GRAY)# BGR 转 HSV image_hsv cv.cvtColor(image, cv.COLOR_BGR2HSV)# BGR 转 Lab image_lab cv.cvtColor(image, cv.COLOR_BGR2Lab)# 显示原始图像和转换后的图像 plt.figure(figsize(12, 8))# 显示原始图像BGR 转 RGB plt.subplot(2, 2, 1) plt.imshow(image_rgb) plt.title(Original Image (RGB)) plt.axis(off)# 显示灰度图像 plt.subplot(2, 2, 2) plt.imshow(image_gray, cmapgray) plt.title(Grayscale Image) plt.axis(off)# 显示 HSV 图像 plt.subplot(2, 2, 3) plt.imshow(image_hsv) plt.title(HSV Image) plt.axis(off)# 显示 Lab 图像 plt.subplot(2, 2, 4) plt.imshow(image_lab) plt.title(Lab Image) plt.axis(off)plt.tight_layout() plt.show()详细解释 读取图像 使用 cv.imread 读取图像默认情况下图像是以 BGR 顺序存储的。 色彩空间转换 使用 cv.cvtColor 函数进行色彩空间转换。 cv.COLOR_BGR2RGB将 BGR 转换为 RGB。cv.COLOR_BGR2GRAY将 BGR 转换为灰度。cv.COLOR_BGR2HSV将 BGR 转换为 HSV。cv.COLOR_BGR2Lab将 BGR 转换为 Lab。 显示图像 使用 plt.imshow 显示图像。对于彩色图像确保颜色通道顺序正确RGB。 对于灰度图像使用 cmapgray 参数显示灰度图像。对于 HSV 和 Lab 图像先转换回 RGB 格式再显示。 为什么需要将 HSV 和 Lab 图像先转换回 RGB 格式再显示 在使用 matplotlib 显示图像时特别是对于 HSV 和 Lab 色彩空间的图像先转换回 RGB 格式再显示的原因主要有以下几点 1. matplotlib 期望的颜色格式是 RGB matplotlib 的 plt.imshow 函数默认期望输入的图像是 RGB 格式的。如果直接传入 HSV 或 Lab 格式的图像颜色会显示不正确因为 matplotlib 会将这些值误解为 RGB 值。 2. 可视化的直观性 HSV 和 Lab 色彩空间的值并不直接对应于人类视觉系统中的颜色感知。例如HSV 色彩空间中的 H色调分量是一个角度值S饱和度和 V亮度分量是比例值而这些值在直接显示时并不能直观地反映出图像的颜色信息。将它们转换回 RGB 格式后可以更直观地展示图像的颜色信息。 3. 避免误解 直接显示 HSV 或 Lab 图像可能会导致误解因为这些色彩空间的值范围和含义与 RGB 不同。例如HSV 色彩空间中的 H 分量范围是 [0, 179]在 OpenCV 中而 RGB 的每个通道范围是 [0, 255]。直接显示这些图像会导致颜色失真和误解。 示例 以下是一个示例代码演示如何将 HSV 和 Lab 图像转换回 RGB 格式再使用 matplotlib 显示 import cv2 as cv import matplotlib.pyplot as plt# 读取彩色图像 image cv.imread(example.jpg)# BGR 转 HSV image_hsv cv.cvtColor(image, cv.COLOR_BGR2HSV)# BGR 转 Lab image_lab cv.cvtColor(image, cv.COLOR_BGR2Lab)# HSV 转 RGB image_hsv_rgb cv.cvtColor(image_hsv, cv.COLOR_HSV2RGB)# Lab 转 RGB image_lab_rgb cv.cvtColor(image_lab, cv.COLOR_Lab2RGB)# 显示原始图像和转换后的图像 plt.figure(figsize(12, 8))# 显示原始图像BGR 转 RGB image_rgb cv.cvtColor(image, cv.COLOR_BGR2RGB) plt.subplot(2, 2, 1) plt.imshow(image_rgb) plt.title(Original Image (RGB)) plt.axis(off)# 显示 HSV 图像转换回 RGB plt.subplot(2, 2, 2) plt.imshow(image_hsv_rgb) plt.title(HSV Image (Converted to RGB)) plt.axis(off)# 显示 Lab 图像转换回 RGB plt.subplot(2, 2, 3) plt.imshow(image_lab_rgb) plt.title(Lab Image (Converted to RGB)) plt.axis(off)plt.tight_layout() plt.show()
http://www.w-s-a.com/news/176135/

相关文章:

  • 网站建设最常见的问题建设银行网站机构
  • 网站集群建设相关的招标南通seo网站建设费用
  • 网络培训的网站建设能够做二维码网站
  • 网站类游戏网站开发wordpress 文章首标点
  • 徐州网站建设熊掌号免费推广网站入口2020
  • 网站建设有前途长春高铁站
  • 做网站网课阿里云域名查询系统
  • saas建站平台有哪些简述网站建设基本流程答案
  • 个人怎么做网站网站浏览思路
  • 网站建设里的知识长沙网络营销公司
  • 网站建设与维护大作业pc网站转换成微网站
  • php网站开发经典教材东莞网站开发
  • 教育培训手机网站模板下载跨境电商培训哪家最好
  • 网站开发淄博网站被降权会发生什么影响吗
  • 网站开发常用的语言东城手机网站制作
  • 微小店网站建设平台手机优化加速有什么用
  • 沈阳酒店企业网站制作公司竞价网站怎么做seo
  • 中山企业网站多少钱学网站建设的好处
  • 做官网网站哪家公司好jianux wordpress
  • 插件素材网站新站seo优化快速上排名
  • 网站注销主体填写原因asp响应式h5网站源码下载
  • 电商类网站模板下载济南市建设网官网
  • 万户网络做网站如何采集器wordpress
  • 襄阳网站建设企业查看 wordpress 插件
  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件