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

opencv小练习(未完成版)

读取一张彩色图像并将其转换为灰度图。

import cv2# 读取图片
img = cv2.imread("./duck.png")
img = cv2.resize(img, dsize=None, fx=0.4, fy=0.4, interpolation=cv2.INTER_LINEAR)
# 读取一张灰度图
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 展示图片
cv2.imshow('image', img)
cv2.imshow('image_gray', img_gray)
# 等待
cv2.waitKey(0)

二值化与形态学操作‌

编写程序,读取一张彩色图像【flower.png】,将其转换为灰度图,然后进行二值化处理。

接着,对二值化后的图像执行腐蚀和膨胀操作,并显示处理前后的图像

import cv2# 读取图片
img = cv2.imread("./duck.png")
img = cv2.resize(img, dsize=None, fx=0.4, fy=0.4, interpolation=cv2.INTER_LINEAR)
# 读取一张灰度图
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, img_binary = cv2.threshold(img_gray, 200, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)# 展示图片
cv2.imshow('image', img)
cv2.imshow('image_gray', img_binary)
# 等待
cv2.waitKey(0)

编写程序,读取一张彩色图像,执行以下操作
对图像应用透视变换,实现油画区域的矫正
import cv2
import numpy as npimg = cv2.imread("./6667.png")points1 = np.array([[166, 136], [632, 40], [82, 500], [660,550]],dtype=np.float32)points2 = np.array([[0, 0], [img.shape[1], 0], [0, img.shape[0]], [img.shape[1], img.shape[0]]],dtype=np.float32)
M = cv2.getPerspectiveTransform(points1, points2)img_warp = cv2.warpPerspective(img, M,(800,600))cv2.imshow("img",img)
cv2.imshow("img1",img_warp)
cv2.waitKey(0)

请编写一段Python代码,使用OpenCV库对一张图像进行以下处理:

将图像转换为灰度图。

使用高斯滤波器平滑图像,内核大小为5x5,标准差为1。

使用Canny边缘检测算法检测图像边缘,阈值1为50,阈值2为150。

检测到的边缘图像上绘制轮廓,轮廓颜色为红色,厚度为2。

import cv2img = cv2.imread("./tubao.png")img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
_,img_binary = cv2.threshold(img_gray,127,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)img_blur = cv2.GaussianBlur(img_binary, (5,5), 1)img_canny = cv2.Canny(img_blur, 50, 150)
img_copy = img.copy()
contours,hierarchy = cv2.findContours(img_binary,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
img_draw = cv2.drawContours(img_copy,contours,-1,(0,0,255),2)cv2.imshow('img', img)
cv2.imshow('img_canny', img_canny)
cv2.imshow('img_draw', img_draw)cv2.waitKey(0)


http://www.mrgr.cn/news/80285.html

相关文章:

  • Summarizing and Understanding Large Graphs
  • 第五章:中央处理器:第二节——指令的执行过程
  • (后序遍历 简单)leetcode 101翻转二叉树
  • XSS(跨站攻击)
  • 好玩的汇编编译器NASM:一款基于x86架构的汇编与反汇编软件
  • 路由引入问题(双点双向路由回馈问题)
  • google 的guava 学习 基本工具类
  • WPF 相比 winform 的优势
  • 一、windows上配置ninja环境
  • Leetcode 面试150题 399.除法求值
  • Windows 系统下 Python 环境安装
  • Ansible自动化运维(五) 运维实战
  • 域名信息收集(小迪网络安全笔记~
  • 2024.12.15CISCN长城杯铁人三项赛
  • Jinja2模板、Roles角色详解
  • Linux 中的 mkdir 命令:深入解析
  • 10个富士胶片模拟的设置
  • JAVA学习日记(二十六)网络编程
  • MySQL 主从复制与高可用架构
  • 金蝶云苍穹踩过的坑(慢慢更新)
  • Java21 虚拟线程
  • epoll反应堆模型
  • python导出requirements.txt的方法
  • 浅议Flink lib包下的依赖项
  • Mybatisplus教学
  • 基线检查:Windows安全基线.【手动 || 自动】