opencv-py-基础操作

这篇具有很好参考价值的文章主要介绍了opencv-py-基础操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

阈值分割

灰度图

import cv2 as cv
import numpy as np
import os
import base_function as bf

sourceImg = cv.imread("static/26.png")
# bf.cv_show("source",sourceImg)

grayImg = cv.cvtColor(sourceImg,cv.COLOR_BGR2GRAY)
bf.cv_show("grayImg",grayImg)

效果

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

二值化

# 阈值分割 二值化 超出阈值取maxvalue,否则取0
ret,thresh1 = cv.threshold(grayImg,100,255,cv.THRESH_BINARY)
bf.cv_show("THRESH_BINARY",thresh1)

效果

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

二值化取反

# 阈值分割 二值化取反  超出阈值取0,否则取maxvalue
ret,thresh2 = cv.threshold(grayImg,100,255,cv.THRESH_BINARY_INV)
bf.cv_show("THRESH_BINARY_INV",thresh2)

效果

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

截取

# 阈值分割 截取  超过阈值的部分设置成阈值,否则不变(第三个参数没用,但是必须有,随便给个数值就行)
ret,thresh3 = cv.threshold(grayImg,100,0,cv.THRESH_TRUNC)
bf.cv_show("THRESH_TRUNC",thresh3)

效果

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

TOZERO

# 阈值分割 TOZERO  超过阈值的部分设置成0,否则不变(第三个参数没用,但是必须有,随便给个数值就行)
# 让超出阈值的部分变得更黑,边缘更清晰
ret,thresh4 = cv.threshold(grayImg,100,255,cv.THRESH_TOZERO)
bf.cv_show("THRESH_TRUNC",thresh4)

效果

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

TOZERO取反

# 阈值分割 TOZERO_INV  超过阈值的部分不变,否则设置成0(第三个参数没用,但是必须有,随便给个数值就行)
# 让小于阈值的部分变得更黑,边缘更清晰
ret,thresh4 = cv.threshold(grayImg,100,255,cv.THRESH_TOZERO_INV)
bf.cv_show("THRESH_TRUNC",thresh4)

效果

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

滤波

均值滤波

from math import fabs
import cv2 as cv
import numpy as np
import base_function as bf
source = cv.imread("static/1.png")
cv.imshow("source",source)
cv.waitKey(1000)
cv.destroyAllWindows()

blur = cv.blur(source,(5,5))
bf.cv_show("blur",blur)

高斯滤波

# 高斯滤波
# sigmaX和sigmaY参数控制了高斯核函数在X和Y方向上的标准差,标准差越大,意味着像素值的变化范围越大,从而使得高斯核的权重分布范围更广,影响范围更大。
# 当sigmaX和sigmaY的值较小时,高斯核的权重主要集中在中心像素周围,这样可以保留更多的细节信息,图像看起来更加清晰。
# 相反,当sigmaX和sigmaY的值较大时,高斯核的权重分布范围更广,会模糊图像,因为更多的像素被纳入平滑处理,从而导致图像变得模糊。
# 因此,通过调节sigmaX和sigmaY的值,可以控制高斯滤波的平滑程度和模糊效果,以适应不同的图像处理需求。
gus = cv.GaussianBlur(source,(5,5),5)
bf.cv_show("gus",gus)

中值滤波

# 中值滤波
# 特别适合处理图像中的椒盐噪点
middle =  cv.medianBlur(source,5)
bf.cv_show("middle",middle)

图像拼接

简单的横向和纵向拼接

# 直接拼接(横向)
all = cv.hconcat([blur,gus,middle])
bf.cv_show("all",all)
# 直接拼接(纵向)
allv = cv.vconcat([blur,gus,middle])
bf.cv_show("allv",allv)

效果(三幅图片分别是均值滤波,高斯滤波,中值滤波)

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉

腐蚀与膨胀

import cv2 as cv
import base_function as bf
import numpy as np

# --- 字体设置 ---
position = (10, 50) # 左上角起始点的坐标
font = cv.FONT_HERSHEY_SIMPLEX
scale = 1
color = (255, 255, 255) # BGR颜色值(白色)
thickness = 2
# --- end字体设置 ---

source = cv.imread("static/26.png")
gray = cv.cvtColor(source,cv.COLOR_BGR2GRAY)
# bf.cv_show("gray",gray)

kernel =  np.ones((7,7),np.uint8)  
#二值化取反
ret,binary = cv.threshold(gray,100,255,cv.THRESH_BINARY_INV)

# 腐蚀图片
erode = cv.erode(binary,kernel,iterations=1) 
# bf.cv_show("erode",erode)

# 膨胀图片
dilate = cv.dilate(erode,kernel,iterations=1)

# 开运算 先腐蚀后膨胀
open = cv.morphologyEx(binary,cv.MORPH_OPEN,kernel)
# 闭运算 先膨胀后腐蚀
close = cv.morphologyEx(binary,cv.MORPH_CLOSE,kernel)

cv.putText(gray,"gray",position,font,scale,color,thickness)
cv.putText(binary,"binary",position,font,scale,color,thickness)
cv.putText(erode,"erode",position,font,scale,color,thickness)
cv.putText(dilate,"dilate",position,font,scale,color,thickness)
cv.putText(open,"open",position,font,scale,color,thickness)
cv.putText(close,"close",position,font,scale,color,thickness)
all =np.vstack((np.hstack((gray,binary,erode)) ,np.hstack((dilate,open,close))))
bf.cv_show("all",all)

opencv-py-基础操作,opencv,opencv,人工智能,计算机视觉文章来源地址https://www.toymoban.com/news/detail-793355.html

到了这里,关于opencv-py-基础操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能】AGI 通用人工智能基础概念、实现原理、挑战和发展前景

    Artificial intelligence prompt completion by dalle mini, https://github.com/borisdayma/dalle-mini 随着计算机技术、机器学习和神经网络等技术的发展,人工智能(Artificial Intelligence, AI)已经成为当今计算机科学和工程领域的热门话题之一。 强人工智能(Strong AI)或通用人工智能(英语:Artificia

    2024年02月09日
    浏览(62)
  • 人工智能算法工程师面试题——之OpenCV必背汇总(四)

    在OpenCV中,图像融合通常指的是将两个或更多图像以某种方式组合在一起,以创建一个新的图像。这个过程可以用于多种目的,比如艺术效果、图像修复或信息增强。实现图像融合的一种常见方法是通过加权求和,也就是每个像素位置上将不同图像的像素值按照一定的权重相

    2024年02月21日
    浏览(50)
  • 人工智能基础学习

    人类的一大优势是没有一种智能。 有些人可以轻松学习新语言,而另一些人则精通科学和技术。 然而,许多伟大的艺术家都是糟糕的数学家。 另一方面,许多伟大的数学家都是糟糕的艺术家。 但每个人都可以以自己的方式变得聪明。 人类智能没有一个标准。 这使得你很难

    2024年02月12日
    浏览(42)
  • 人工智能基础篇

    本篇目录: 一、人工智能、机器学习、深度学习的关系 (1)、关系图 (2)、人工智能 (3)、人类智能过程 (4)、机器学习 (5)、深度学习 二、人工智能研究的领域 三、人工智能的应用场景 (1)、计算机视觉 (2)、语音技术 (3)、自然语言处理 (4)、决策系统

    2024年02月09日
    浏览(88)
  • 学习人工智能-基础篇

    背景 随着大模型的火爆,人工智能再次被推到高潮,其实它在众多行业领域已经落地很多应用,并给社会带来了巨大的经济价值。其中包括互联网、教育、金融、医疗、交通、物流等等。在测试领域也有一些落地的案例,作为测试人员,有必要去了解并学习人工智能,去挖掘

    2024年02月04日
    浏览(41)
  • 【生成人工智能】Ray如何解决生成人工智能基础设施的常见生产挑战

    这是我们生成人工智能博客系列的第一部分。在这篇文章中,我们讨论了如何使用Ray来生产常见的生成模型工作负载。即将发布的一篇博客将深入探讨Alpa等项目为什么要使用Ray来扩展大型模型。 生成的图像和语言模型有望改变企业的设计、支持、开发等方式。本博客重点关

    2024年02月02日
    浏览(63)
  • 人工智能的数学基础

    2023年09月13日
    浏览(71)
  • 如何零基础学习“人工智能”?

    人工智能(AI)是近年来快速发展的领域之一,它已经开始改变我们的生活和工作方式。 人工智能(AI)是一项旨在使计算机系统能够执行以前需要人类智力才能完成的任务的技术。AI可以用来解决许多问题,包括语音识别、图像处理、自然语言处理和机器翻译等。它已经开始

    2024年02月07日
    浏览(51)
  • 人工智能技术基础系列之:机器学习基础

    作者:禅与计算机程序设计艺术 在互联网的飞速发展和计算机的高计算性能的驱动下,人工智能迎来了新的时代。机器学习作为人工智能领域的一个重要分支,是实现这一目标的一种方法。本文将从机器学习的基本概念出发,介绍机器学习的一些基本术语、概率论基础、算法

    2024年02月07日
    浏览(58)
  • Learn Prompt-人工智能基础

    什么是人工智能?很多人能举出很多例子说这就是人工智能,但是让我们给它定义一个概念大家又觉得很难描述的清楚。实际上,人工智能并不是计算机科学领域专属的概念,在其他学科包括神经科学、心理学、哲学等也有人工智能的概念以及相关的研究。在笔者的观点里,

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包