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

python中采用opencv作常规的图片处理的方法~~~

在python中,我们经常会需要对图片做灰度/二值化/模糊等处理,这时候opencv就是我们的好帮手了,下面我来介绍一下相关用法:

首先,需要安装opencv-python库:

然后,在你的代码中引用:

import cv2

最后就是代码了,这里列出上述几种常规图片处理的方法,为了方便取用我已经做成了函数:

def process_image(image_path, mode="灰度"):

    try:
        # 读取图片(灰度和二值化处理时,直接以灰度图像读入)
        image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE if mode != "高斯模糊" else cv2.IMREAD_COLOR)

        if image is None:
            return "抱歉,无法读取图片。请检查路径是否正确。"
        # endif

        # 根据模式处理图片
        if mode == "灰度":
            processed_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) if len(image.shape) == 3 else image        #如果是RGB图像才转换,否则直接返回原图像
            output_path = "processed_grayscale_image.jpg"
        elif mode == "二值化":
            _, processed_image = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
            output_path = "processed_binary_image.jpg"
        elif mode == "高斯模糊":
            processed_image = cv2.GaussianBlur(image, (15, 15), 0)
            output_path = "processed_blurred_image.jpg"
        else:
            return "抱歉,不支持该图片处理模式。"
        # endif

        # 保存处理后的图片
        cv2.imwrite(output_path, processed_image)
        return f"图片已处理并保存为 {output_path}。"

    except Exception as e:
        return f"抱歉,图片处理时出错了: {str(e)}"

    #end try

#end def

如果需要快速显示前面处理的结果,用下面的函数即可:

def show_image(image_path):

    try:
        # 读取图片
        image = cv2.imread(image_path)

        if image is None:
            return "抱歉,无法读取图片。请检查路径是否正确。"
        # endif

        # 显示图片
        cv2.imshow("Image", image)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
        return "图片已显示。"

    except Exception as e:
        return f"抱歉,显示图片时出错了: {str(e)}"

    #end try

#end def

随取,不谢 ~~~

相关文章:

  • 华为OD机试-发现新词的数量(Java 2024 E卷 100分)
  • Kafka 消息不丢失:全方位保障策略
  • redis菜鸟教程
  • 【MATLAB源码-第271期】基于matlab的雷达发射回波模拟,包括匹配滤波,加窗旁瓣控制,以及MTD处理。
  • C++ STL string容器全解析
  • 解锁健康密码,踏上养生之旅
  • 《基于WebGPU的下一代科学可视化——告别WebGL性能桎梏》
  • 【Linux篇】版本控制器-Git
  • OpenHarmony研发工具链子系统
  • Dify框架下的基于RAG流程的政务检索平台
  • 计算机毕业设计Python+DeepSeek-R1大模型微博的话题博文及用户画像分析系统 微博舆情可视化(源码+ 文档+PPT+讲解)
  • JPA编程,去重查询ES索引中的字段,对已有数据的去重过滤,而非全部字典数据
  • ETL系列-数据加载(Load)
  • MCU-缓存Cache与CPU中的主存SRAM
  • WPF框架---MvvmLight介绍
  • 大模型——模型上下文协议 (MCP)
  • 懒加载预加载
  • pyqt实现yolov8主界面和登录界面以及数据库
  • 轻量级语义分割算法:演进与创新
  • 基于全局拓扑图和双尺度图Transformer的视觉语言导航
  • 对电子政务做技术支持的网站/快速提升关键词排名软件
  • 网站开发及建设费用/网站营销软文
  • 广西seo网站推广/电商网站销售数据分析
  • 珠海营销网站建设/seo搜索优化专员招聘
  • 网站的建议/品牌推广策划方案怎么写
  • 建设征信注册中心网站/互联网营销师证书有用吗