几何变换
计算机视觉中的一章
可可茜里的传说
这个作者很懒,什么都没留下…
展开
-
10.图像金字塔
图像金字塔:主要是指一种算法思想一般情况下,我们要处理是一副具有固定分辨率的图像。但是有些情况下,我们雪要对同一图像的不同分辨率的子图像进行处理。比如,我们要在一幅图像中查找某个目标,比如险,我们不知道目标在图像中的尺寸大小。这种情况下,我们需要创建创建一组图像,这些图像是具有不同分辨幸的原始图像。我们把这组图像叫做图像金字塔〈简单来说就是同一图像的不同分辨率的子图集合》。如果我们把最大的图像放在底部,最小的放在项部,看起来像一座金字塔,故而得名图像金字塔。不同分辨率的图像,使用图像金字塔,可以找到原创 2021-11-15 09:18:04 · 1509 阅读 · 0 评论 -
9.切分合并通道
图形的合并切分from imutils import *image = imread('test.jpg')image.shape #查看形状(400, 300, 3)(R, G, B) = cv2.split(image) #将三通道的数值切分出来print(R.shape)print(G.shape)print(B.shape)(400, 300)(400, 300)(400, 300)merged = cv2.merge([R,G,B])show(merg原创 2021-11-15 08:56:49 · 1864 阅读 · 0 评论 -
8.图片的遮挡
遮挡是按位操作执行的from imutils import *image = imread('test.jpg')show(image)image.shape(400, 300, 3)# 创建遮挡mask = np.zeros(image.shape,dtype='uint8')white = (255,255,255)cv2.rectangle(mask, (50,50), (250,350), white, -1)show(mask)# 对图像遮挡masked = c原创 2021-11-15 08:47:17 · 2001 阅读 · 0 评论 -
7.按位计算
按位计算bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=1,0|1=1,0|0=0bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,11=0,10=原创 2021-11-12 11:42:09 · 992 阅读 · 0 评论 -
OpenCV 几何运算 自定义包 imutils
因为在几何运算中,所有的运算都需要使用这几个包以及展示和读入操作,为了方便使用,将其单独写为一个包,命名为imutils.py,使用时 可用 **from imutils import *** 来引用即可import cv2import matplotlib.pyplot as pltimport numpy as npdef show(image): plt.imshow(image) plt.axis('off') plt.show() def imread原创 2021-11-12 11:18:08 · 1477 阅读 · 0 评论 -
6.图像算术
图像算术图像的加减法可以用于图像明暗度的调节展示了图像算术与普通算术的不同在普通计算中,例如8位二进制数的计算,在超过255或小于0的情况下,都使用取余来对其进行处理在图像计算中,若超过255,则直接取最大值255,即黑色,若小于0,则直接取0,即白色from imutils import *image = imread('test.jpg')show(image)# 图像加法print(cv2.add(np.uint8([200]),np.uint8([100]))) #unit8原创 2021-11-12 11:00:35 · 843 阅读 · 0 评论 -
5.裁剪图片
from imutils import *image = imread('test.jpg')show(image)image = imread('test.jpg') #每次裁剪时再读一次image = image[0:200,50:200] #选定区域show(image)image = imread('test.jpg')image = image[200:,50:-50]show(image)原创 2021-11-12 10:33:50 · 317 阅读 · 0 评论 -
4.翻转页面
from imutils import *image = imread("test.jpg")show(image)# 水平翻转 1image = imread("test.jpg")image = cv2.flip(image,1)show(image)# 垂直翻转 0image = imread("test.jpg")image = cv2.flip(image,0)show(image)# 水平+垂直翻转 -1image = imread("test.jpg")原创 2021-11-12 09:55:35 · 345 阅读 · 0 评论 -
3.resize图像形状大小
from imutils import *image = imread('image.jpg')show(image)print(image.shape)(424, 600, 3)width = 150high = 150 image = cv2.resize(image, (width, high)) #设置想要的图片大小,传给图片show(image)print(image.shape)(150, 150, 3)image = imread('image.jpg')原创 2021-11-12 09:44:43 · 629 阅读 · 0 评论 -
2.图像旋转放大缩小
import cv2import matplotlib.pyplot as pltimport numpy as npdef show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image = cv2.imread(image) image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) return imag原创 2021-11-12 09:13:57 · 923 阅读 · 0 评论 -
1.图像平移
import cv2import matplotlib.pyplot as pltimport numpy as npdef show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image = cv2.imread(image) image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) return imag原创 2021-11-12 09:01:41 · 76 阅读 · 0 评论