OpenCV图像运算基础

提示:志存高远且脚踏实地

文章目录

一、前言

二、主要内容

1.逻辑运算

2.几何运算

三、总结


一、前言

图像的基本运算有很多种,本次学习逻辑运算和几何运算。

二、主要内容

1.逻辑运算

逻辑运算是只对两幅图像的对应像素做逻辑与、逻辑或、异或、非等运算。

2.几何运算

几何运算也称为几何变换。主要有缩放、翻转、仿射等。

缩放:resize(src, dsize))

翻转:flip(src, flipcode)

仿射:wapAffine(src, M,dsize)

<1>平移

<2>缩放

<3>旋转

缩放

# 按比例缩放
import cv2
im=cv2.imread('lena.jpg')
sc=[1.0,0.5,1.5,2.0]
cv2.imshow('input',im)
while True:
    key=cv2.waitKey()
    if 48<=key<=51:
        x=y=sc[key-48]
        im2=cv2.resize(im,None,fx=x,fy=y)
        cv2.imshow('output',im2)

翻转

import cv2
im=cv2.imread('lena.jpg')
cv2.imshow('Input',im)
while True:
  key=cv2.waitKey()
  if key==48:
    im2=im
  elif key==49:
    im2=cv2.flip(im,0)
  elif key==50:
    im2=cv2.flip(im,1)
  elif key==51:
    im2=cv2.flip(im,-1)
  cv2.imshow('output',im2)

仿射

dst(x,y)=cv2.warpAffine(src, M, dsize)

其中,M是变换矩阵;dsize是结果图像尺寸。

像素映射规则:

dst(x, y)=src(M00x+M01y+M02, M10x+M11y+M12)

仿射——平移

import cv2
import numpy as np
im=cv2.imread('HappyFish.jpg')
cv2.imshow('input',im)
shape=im.shape[:2]
x=100
y=30
M=np.array([[1,0,x],[0,1,y]],dtype=np.float32)
dst=cv2.warpAffine(im,M,shape)
cv2.imshow(‘translation', dst)
cv2.waitKey(0)

仿射——缩放

import cv2
import numpy as np
im=cv2.imread('HappyFish.jpg')
cv2.imshow('input',im)
shape=im.shape[:2]
M=np.array([[0.5,0,0],[0,0.5,0]],dtype=np.float32)
dst=cv2.warpAffine(im,M,shape)
cv2.imshow(‘Resize', dst)
cv2.waitKey(0)

仿射——旋转

import cv2
import numpy as np
im=cv2.imread('HappyFish.jpg')
cv2.imshow('input',im)
shape=im.shape[:2]

M=cv2.getRotationMatrix2D((shape[0]/2,shape[1]/2),-60,0.5)
dst=cv2.warpAffine(im,M,shape)

cv2.imshow('Rotation', dst)
cv2.waitKey(0)

三、总结

图像运算

逻辑运算

几何运算

缩放:resize(src, dsize))

翻转:flip(src, flipcode)

仿射:wapAffine(src, M,dsize)

平移

缩放

旋转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程-七辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值