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

岳阳手机网站制作石家庄seo关键词排名

岳阳手机网站制作,石家庄seo关键词排名,电信网站空间,用dw做一个个人网站① 二值化函数 功能:将图像转换为二值图像(黑白图像),将像素值分为两种类别:前景(白)和背景(黑)。函数:cv2.threshold()参数: src:输…

二值化函数

  • 功能:将图像转换为二值图像(黑白图像),将像素值分为两种类别:前景(白)和背景(黑)。
  • 函数cv2.threshold()
  • 参数
    1. src:输入图像(通常为灰度图像)。
    2. thresh:阈值值,用于将像素分割为前景和背景。
    3. maxval:满足条件的像素值赋值为此值(通常为255)。
    4. type:阈值类型,例如:
      • cv2.THRESH_BINARY:大于阈值的像素赋值为maxval,否则为0。
      • cv2.THRESH_BINARY_INV:反向二值化。
      • cv2.THRESH_TRUNC:大于阈值的像素赋值为阈值,其余保持不变。
      • cv2.THRESH_TOZERO:小于阈值的像素赋值为0。
      • cv2.THRESH_TOZERO_INV:大于阈值的像素赋值为0。
  • 返回值
    1. retval:实际使用的阈值(当选择 Otsu 或自适应阈值时有意义)。
    2. dst:二值化后的图像。
  • 应用:目标检测、边缘检测、文档处理等。
  • 代码:
    import cv2# 读取图像文件
    img = cv2.imread("./lena.png")  # 从当前目录读取名为 "lena.png" 的图像文件
    cv2.imshow("flower", img)  # 显示原始图像,窗口标题为 "flower"# 将彩色图像转换为灰度图像
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 使用 OpenCV 的颜色转换函数,将图像从 BGR 转为灰度
    cv2.imshow("gray", img_gray)  # 显示灰度图像,窗口标题为 "gray"# 设置二值化的阈值
    thresh = 120  # 阈值设为 120,低于该值的像素归为 0,高于该值的像素归为 255# 手动实现基于阈值的二值化
    img_binary = img_gray  # 将灰度图赋值给新的变量 img_binary
    for i in range(img_gray.shape[0]):  # 遍历图像的每一行for j in range(img_gray.shape[1]):  # 遍历图像的每一列if img_binary[i][j] <= thresh:  # 如果像素值小于等于阈值pass  # 此处原本应该将像素值设为 0,但被注释掉了(什么都不做)# img_binary[i][j] = 0  # 手动将像素值设置为 0else:  # 如果像素值大于阈值img_binary[i][j] = 255  # 手动将像素值设置为 255(白色)# 使用 OpenCV 自带的阈值函数实现二值化(此部分代码被注释掉)
    # ret, img_binary = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    # 说明:
    # ret:实际使用的阈值(当使用 Otsu 方法时,自动计算得到)。
    # img_binary:二值化后的图像。
    # cv2.THRESH_BINARY:普通二值化,像素值高于阈值设为最大值(255),否则为 0。
    # cv2.THRESH_OTSU:自动计算全局最佳阈值。# 显示二值化后的图像
    cv2.imshow("threshold ", img_binary)  # 显示手动二值化后的图像,窗口标题为 "threshold"# 等待用户按键,随后关闭窗口
    cv2.waitKey(0)  # 等待用户按下任意键,不限制时间
    


自适应二值化函数

  • 功能:对光照不均匀的图像进行二值化,使用局部区域的统计信息来计算阈值。
  • 函数cv2.adaptiveThreshold()
  • 参数
    1. src:输入图像(必须是灰度图)。
    2. maxValue:满足条件的像素值赋值为此值(通常为255)。
    3. adaptiveMethod:自适应阈值计算方法:
      • cv2.ADAPTIVE_THRESH_MEAN_C:取邻域均值作为阈值。
      • cv2.ADAPTIVE_THRESH_GAUSSIAN_C:取邻域高斯加权均值作为阈值。
    4. thresholdType:阈值类型(通常为 cv2.THRESH_BINARYcv2.THRESH_BINARY_INV)。
    5. blockSize:邻域大小(必须为奇数)。
    6. C:常量,用于调整阈值结果。
  • 返回值
    • dst:自适应二值化后的图像。
  • 应用:场景文字检测、身份证/票据识别、医学影像处理。
  • 代码:
    import cv2  # 导入 OpenCV 库,用于图像处理# 读取图像
    image = cv2.imread("./lena.png")  # 从当前目录读取名为 "lena.png" 的图像文件(彩色图像)
    # cv2.imshow("flower", image)  # 如果需要显示原图,可以取消注释此行,窗口标题为 "flower"# 将彩色图像转换为灰度图像
    img_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  # 使用 OpenCV 的颜色转换函数,将 BGR 彩色图像转为灰度图像
    cv2.imshow("gray", img_gray)  # 显示灰度图像,窗口标题为 "gray"# 使用 Otsu 方法进行全局阈值化
    ret, img_binary = cv2.threshold(img_gray,          # 输入图像,必须是灰度图像200,               # 手动设置的初始阈值(Otsu 会自动调整,此值会被忽略)255,               # 满足条件的像素值设置为 255cv2.THRESH_BINARY + cv2.THRESH_OTSU  # 二值化模式为 Otsu 和普通二值化的组合
    )
    # cv2.imshow("threshold", img_binary)  # 如果需要显示 Otsu 二值化结果,可以取消注释此行,窗口标题为 "threshold"# 使用自适应二值化方法
    image_np_adaptive = cv2.adaptiveThreshold(img_gray,                  # 输入图像,必须是灰度图像255,                       # 满足条件的像素值设置为 255cv2.ADAPTIVE_THRESH_GAUSSIAN_C,  # 使用高斯加权的邻域均值来计算局部阈值cv2.THRESH_BINARY,         # 二值化模式为普通二值化7,                       # 邻域大小(blockSize),必须为奇数,例如 7 表示 7×7 的窗口5                         # 常量 C,最终阈值为计算出的局部阈值减去 C
    )
    cv2.imshow("image_np_adaptive", image_np_adaptive)  # 显示自适应二值化后的图像,窗口标题为 "image_np_adaptive"# 等待用户按键,随后关闭所有窗口
    cv2.waitKey(0)  # 等待用户按下任意键,不限制时间
    


腐蚀函数

  • 功能:减少图像中的白色区域(前景),去除小的噪声点或断开小的连接。
  • 函数cv2.erode()
  • 参数
    1. src:输入图像(二值图像或灰度图像)。
    2. kernel:结构元素(形状和大小由 cv2.getStructuringElement() 定义)。
    3. iterations:腐蚀操作的次数。
  • 返回值
    • dst:腐蚀后的图像。
  • 应用:去除噪声、边缘提取、分离连通物体等。
  • 代码:
    import cv2  # 导入 OpenCV 库,用于图像处理# 读取图像
    image_binary = cv2.imread("./morph.png")  # 从当前目录读取名为 "morph.png" 的图像文件
    # 注意:这里假设图像是二值图像(黑白图像),如果图像是彩色或灰度图,需要先进行预处理。# 创建结构元素(内核)
    image_1 = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,  # 内核形状为椭圆(10, 10)            # 内核大小为 10×10 像素
    )
    # 说明:
    # `cv2.getStructuringElement()` 用于创建形态学操作的结构元素(内核)。
    # 参数 `cv2.MORPH_ELLIPSE` 表示使用椭圆形内核。其他可选形状包括:
    # - `cv2.MORPH_RECT`:矩形
    # - `cv2.MORPH_CROSS`:交叉形
    # 内核的大小对形态学操作的结果影响很大,较大的内核会产生更显著的效果。# 使用腐蚀操作处理图像
    image_erode = cv2.erode(image_binary,  # 输入图像,通常为二值图像image_1        # 结构元素(内核)
    )
    # 说明:
    # `cv2.erode()` 是 OpenCV 的腐蚀函数,用于减少图像中前景(白色区域)的面积。
    # 通过结构元素内核,腐蚀操作会移除边缘上的白色像素。
    # 对于 10×10 的椭圆内核,腐蚀操作会缩小前景区域,并去除小的噪声。# 显示腐蚀后的图像
    cv2.imshow("image_erode", image_erode)  # 显示腐蚀后的图像,窗口标题为 "image_erode"# 显示原始图像
    cv2.imshow("image_binary", image_binary)  # 显示原始图像,窗口标题为 "image_binary"# 等待用户按键后关闭窗口
    cv2.waitKey(0)  # 等待用户按下任意键
    


膨胀函数

  • 功能:增加图像中的白色区域(前景),填补断裂的区域或小孔。
  • 函数cv2.dilate()
  • 参数
    1. src:输入图像(二值图像或灰度图像)。
    2. kernel:结构元素。
    3. iterations:膨胀操作的次数。
  • 返回值
    • dst:膨胀后的图像。
  • 应用:增强物体区域、填充空隙、形态学处理等。
  • 代码:
    import cv2  # 导入 OpenCV 库,用于图像处理# 读取图像
    image_binary = cv2.imread("./lena.png")  # 从当前目录读取名为 "lena.png" 的图像文件(彩色图像)# 将彩色图像转换为灰度图像
    image_gray = cv2.cvtColor(image_binary, cv2.COLOR_BGR2GRAY)  # 使用 OpenCV 的颜色转换函数,将 BGR 图像转为灰度图像# 自适应二值化
    image_np_adaptive = cv2.adaptiveThreshold(image_gray,                # 输入灰度图像255,                       # 满足条件的像素值设置为 255cv2.ADAPTIVE_THRESH_GAUSSIAN_C,  # 使用高斯加权的邻域均值计算局部阈值cv2.THRESH_BINARY,         # 二值化模式为普通二值化7,                         # 邻域大小(blockSize),必须是奇数,这里为 7×7 的窗口5                          # 常量 C,用于调整阈值(阈值 = 局部均值 - C)
    )
    # 自适应二值化适用于光照不均匀的图像处理。参数 `blockSize` 和 `C` 会直接影响二值化结果。# 创建形态学操作的结构元素(内核)
    kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,  # 内核形状为椭圆形(4, 4)              # 内核大小为 4×4 像素
    )
    # 注意:较小的内核会对图像做出细微的形态学改变,较大的内核会显著改变图像形状。# 腐蚀操作
    image_erode = cv2.erode(image_np_adaptive,  # 输入二值图像(经过自适应二值化的图像)kernal              # 使用的内核
    )
    # `cv2.erode()` 会减少前景(白色区域)的面积,移除边缘上的噪声点或小的白色区域。
    # 腐蚀操作通常用于消除小噪声或分离相连的物体。# 膨胀操作
    image_erode_dilate = cv2.dilate(image_erode,  # 输入图像(已经腐蚀过的图像)kernal        # 使用的内核
    )
    # `cv2.dilate()` 会增加前景(白色区域)的面积,填充空洞或连接断裂的部分。
    # 腐蚀和膨胀结合使用可以实现开运算(消除小噪声)或闭运算(填补小空洞)。# 显示腐蚀后的图像
    cv2.imshow("image_erode", image_erode)  # 显示腐蚀处理后的图像,窗口标题为 "image_erode"# 显示原始彩色图像
    cv2.imshow("image_binary", image_binary)  # 显示原始图像,窗口标题为 "image_binary"# 显示腐蚀后再膨胀的图像
    cv2.imshow("image_erode_dilate", image_erode_dilate)  # 显示膨胀处理后的图像,窗口标题为 "image_erode_dilate"# 等待用户按键后关闭窗口
    cv2.waitKey(0)  # 等待用户按下任意键,窗口保持打开
    


仿射变换函数

  • 功能:对图像进行线性变换,如旋转、缩放、平移等。
  • 函数cv2.warpAffine()
  • 参数
    1. src:输入图像。
    2. M:2x3 的仿射变换矩阵(通过 cv2.getAffineTransform() 生成)。
    3. dsize:输出图像的尺寸(宽度和高度)。
    4. flags:插值方法(如 cv2.INTER_LINEAR)。
    5. borderModeborderValue:用于处理边界像素。
  • 返回值
    • dst:变换后的图像。
  • 应用:图像旋转、缩放、平移、视角调整等。
  • 代码:
    import numpy as np  # 导入 NumPy,用于数值计算(此处未使用,但是常见的图像处理工具库)
    import cv2  # 导入 OpenCV 库,用于图像处理# 读取图像
    image_binary = cv2.imread("./lena.png")  # 从当前目录读取名为 "lena.png" 的图像文件(彩色图像)# 将彩色图像转换为灰度图像
    image_gray = cv2.cvtColor(image_binary, cv2.COLOR_BGR2GRAY)  # 使用 OpenCV 的颜色转换函数,将 BGR 图像转为灰度图像# 自适应二值化
    image_np_adaptive = cv2.adaptiveThreshold(image_gray,                # 输入灰度图像255,                       # 满足条件的像素值设置为 255cv2.ADAPTIVE_THRESH_GAUSSIAN_C,  # 使用高斯加权的邻域均值计算局部阈值cv2.THRESH_BINARY,         # 二值化模式为普通二值化7,                         # 邻域大小(blockSize),必须是奇数,这里为 7×7 的窗口5                          # 常量 C,用于调整阈值(阈值 = 局部均值 - C)
    )
    # 自适应二值化适用于光照不均匀的图像处理。参数 `blockSize` 和 `C` 会直接影响二值化结果。# 创建形态学操作的结构元素(内核)
    kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,  # 内核形状为椭圆形(4, 4)              # 内核大小为 4×4 像素
    )
    # 注意:较小的内核会对图像做出细微的形态学改变,较大的内核会显著改变图像形状。# 腐蚀操作
    image_erode = cv2.erode(image_np_adaptive,  # 输入二值图像(经过自适应二值化的图像)kernal              # 使用的内核
    )
    # `cv2.erode()` 会减少前景(白色区域)的面积,移除边缘上的噪声点或小的白色区域。
    # 腐蚀操作通常用于消除小噪声或分离相连的物体。# 膨胀操作
    image_erode_dilate = cv2.dilate(image_erode,  # 输入图像(已经腐蚀过的图像)kernal        # 使用的内核
    )
    # `cv2.dilate()` 会增加前景(白色区域)的面积,填充空洞或连接断裂的部分。
    # 腐蚀和膨胀结合使用可以实现开运算(消除小噪声)或闭运算(填补小空洞)。# 显示腐蚀后的图像
    cv2.imshow("image_erode", image_erode)  # 显示腐蚀处理后的图像,窗口标题为 "image_erode"# 显示原始彩色图像
    cv2.imshow("image_binary", image_binary)  # 显示原始图像,窗口标题为 "image_binary"# 显示腐蚀后再膨胀的图像
    cv2.imshow("image_erode_dilate", image_erode_dilate)  # 显示膨胀处理后的图像,窗口标题为 "image_erode_dilate"# 等待用户按键后关闭窗口
    cv2.waitKey(0)  # 等待用户按下任意键,窗口保持打开
    


透视变换函数

  • 功能:对图像进行透视变换,从一个视角映射到另一个视角,校正倾斜图像或提取局部内容。
  • 函数cv2.warpPerspective()
  • 参数
    1. src:输入图像。
    2. M:3x3 的透视变换矩阵(通过 cv2.getPerspectiveTransform() 生成)。
    3. dsize:输出图像的尺寸。
    4. flagsborderModeborderValue:与仿射变换类似。
  • 返回值
    • dst:透视变换后的图像。
  • 应用:文档矫正、车牌识别、场景理解等。
  • 代码:
    import cv2  # 导入 OpenCV 库,用于图像处理
    import numpy as np  # 导入 NumPy 库,用于数组操作# 读取图像
    image = cv2.imread("./card.png")  # 从当前目录中读取名为 "card.png" 的图像文件# 检查图像是否成功加载
    if image is None:  # 如果图像加载失败print("Error: Image not found. Please check the file path.")  # 输出错误信息exit()  # 终止程序# 定义原图中的四个点和目标点
    point1 = np.array([[200, 100], [700, 150], [140, 400], [650, 460]], dtype=np.float32)
    # 说明:
    # `point1` 是原始图像中感兴趣区域(ROI)的四个顶点,表示需要校正的区域。
    # 每个点用 (x, y) 坐标表示。
    # 例如,(200, 100) 表示原图中左上角的一个点。point2 = np.array([[0, 0], [image.shape[1], 0], [0, image.shape[0]], [image.shape[1], image.shape[0]]], dtype=np.float32)
    # 说明:
    # `point2` 是透视变换后图像的目标点,定义了变换后的矩形区域。
    # (0, 0) 是左上角,(image.shape[1], 0) 是右上角,依次类推。
    # `image.shape[1]` 表示图像宽度,`image.shape[0]` 表示图像高度。# 获取透视变换矩阵
    M = cv2.getPerspectiveTransform(point1, point2)
    # 说明:
    # `cv2.getPerspectiveTransform()` 函数计算透视变换矩阵。
    # 参数:
    # - `point1`:原始图像中的四个点。
    # - `point2`:目标图像中的四个点。
    # 返回值:
    # - `M` 是一个 3x3 的透视变换矩阵。# 进行透视变换
    image_s = cv2.warpPerspective(image, M, (image.shape[1], image.shape[0]))
    # 说明:
    # `cv2.warpPerspective()` 函数对图像应用透视变换。
    # 参数:
    # - `image`:输入图像。
    # - `M`:透视变换矩阵。
    # - `(image.shape[1], image.shape[0])`:输出图像的大小(宽度、高度)。
    # 返回值:
    # - `image_s` 是经过透视变换后的图像。# 显示原图和矫正后的图像
    cv2.imshow("Original Image", image)  # 显示窗口标题为 "Original Image" 的原始图像
    cv2.imshow("Corrected Image", image_s)  # 显示窗口标题为 "Corrected Image" 的矫正后图像# 等待按键关闭窗口
    cv2.waitKey(0)  # 等待用户按下任意键后关闭所有窗口
    cv2.destroyAllWindows()  # 销毁所有窗口
    


文章转载自:
http://bulletin.jjpk.cn
http://humidify.jjpk.cn
http://tenorite.jjpk.cn
http://turkmen.jjpk.cn
http://odeum.jjpk.cn
http://haematoblast.jjpk.cn
http://poppyseed.jjpk.cn
http://pigtailed.jjpk.cn
http://festivalgoer.jjpk.cn
http://backbitten.jjpk.cn
http://sisal.jjpk.cn
http://goldstar.jjpk.cn
http://beslave.jjpk.cn
http://reluctantly.jjpk.cn
http://tervueren.jjpk.cn
http://chancellorship.jjpk.cn
http://dipperful.jjpk.cn
http://resinous.jjpk.cn
http://rhinoceros.jjpk.cn
http://co.jjpk.cn
http://terminableness.jjpk.cn
http://hogman.jjpk.cn
http://coney.jjpk.cn
http://teiid.jjpk.cn
http://olid.jjpk.cn
http://rockaby.jjpk.cn
http://pronatalism.jjpk.cn
http://methylthionine.jjpk.cn
http://oap.jjpk.cn
http://tommyrot.jjpk.cn
http://feedwater.jjpk.cn
http://gynaecologic.jjpk.cn
http://algophagous.jjpk.cn
http://breakaway.jjpk.cn
http://slapdashery.jjpk.cn
http://patrolman.jjpk.cn
http://overbite.jjpk.cn
http://lousiness.jjpk.cn
http://nitrolim.jjpk.cn
http://conciliation.jjpk.cn
http://catchpole.jjpk.cn
http://incompact.jjpk.cn
http://frontier.jjpk.cn
http://runty.jjpk.cn
http://tagus.jjpk.cn
http://albuminoid.jjpk.cn
http://modeling.jjpk.cn
http://savvy.jjpk.cn
http://foremastman.jjpk.cn
http://derma.jjpk.cn
http://bestrode.jjpk.cn
http://snakeless.jjpk.cn
http://grape.jjpk.cn
http://numbness.jjpk.cn
http://yate.jjpk.cn
http://lierne.jjpk.cn
http://tannage.jjpk.cn
http://rash.jjpk.cn
http://hurler.jjpk.cn
http://chronically.jjpk.cn
http://chickadee.jjpk.cn
http://hairlike.jjpk.cn
http://admirable.jjpk.cn
http://epilogist.jjpk.cn
http://costermansville.jjpk.cn
http://reseau.jjpk.cn
http://teleologist.jjpk.cn
http://sevastopol.jjpk.cn
http://endostracum.jjpk.cn
http://keybutton.jjpk.cn
http://euroclear.jjpk.cn
http://relaxedly.jjpk.cn
http://calices.jjpk.cn
http://soigne.jjpk.cn
http://mulriple.jjpk.cn
http://nonfulfillment.jjpk.cn
http://resnatron.jjpk.cn
http://brecciate.jjpk.cn
http://denominate.jjpk.cn
http://monition.jjpk.cn
http://novate.jjpk.cn
http://mahometan.jjpk.cn
http://radiosensitivity.jjpk.cn
http://ole.jjpk.cn
http://cyclades.jjpk.cn
http://uncharitably.jjpk.cn
http://annularly.jjpk.cn
http://sirius.jjpk.cn
http://pappi.jjpk.cn
http://arduously.jjpk.cn
http://calyculus.jjpk.cn
http://restart.jjpk.cn
http://tomism.jjpk.cn
http://unwisdom.jjpk.cn
http://sialidan.jjpk.cn
http://enkindle.jjpk.cn
http://epibenthos.jjpk.cn
http://stepsister.jjpk.cn
http://lesbo.jjpk.cn
http://polygraph.jjpk.cn
http://www.dt0577.cn/news/86911.html

相关文章:

  • 深圳的网站建设公司排名山东seo多少钱
  • 怎么创建免费自己的网站平台百度搜索指数在线查询
  • icp备案系统网站网络安全培训最强的机构
  • 大型网站建设就找兴田德润外贸网站推广
  • 有没有帮忙做问卷调查的网站天津网站建设
  • 织梦网站优化教程网络营销推广的优势
  • 什么软件做网站做好快速收录工具
  • 网站建设:合优网络竞价托管哪家便宜
  • 建设京东类的网站需要什么流程宣传网站怎么做
  • 做行程的网站推荐国际要闻
  • 上海模板网站公司企点
  • 建网站公司销售优化方法
  • 公众号自己做电影网站营销方法有哪些
  • 做网站工具网络推广和竞价怎么做
  • wp 企业网站模板seo优化一般多少钱
  • 门户网站采用较多的模式是做灰色词seo靠谱
  • 怀柔 做网站的seo互联网营销培训
  • 东营网约车windows优化大师有什么功能
  • asp.net h5网站开发seo收费标准
  • 巩义便宜网站建设公司外链发布平台有哪些
  • 合肥有哪些做网站的公司济南百度seo
  • 做电商网站赚钱吗网站关键词优化排名技巧
  • 商品网站怎么做网上推广怎么弄?
  • 金溪网站建设制作使用最佳搜索引擎优化工具
  • ps做网站的草图2022年时事政治热点汇总
  • 那些做电影视频网站的赚钱吗国际免费b站
  • 免费做简历下载的网站关键词在线试听免费
  • wordpress添加悬浮客服代码关键字排名优化工具
  • 做网站新闻品牌推广公司
  • 网站内容怎么选择图片识别 在线识图