图像各种变换

Posted fengxiaokang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像各种变换相关的知识,希望对你有一定的参考价值。

平移:

  遍历像素即可,也可以用函数[ : , m:n ]

w,h,m= img.shape

dst = np.zeros((w,h,m), np.uint8)

for i in range(w-50):

    for j in range( h-60):

        dst[i+50, j+60] = img[i, j]

dst[0:50,:]=img[0:50,:]

放大缩小:

  依靠函数:cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)

img_test = cv.resize(img, (int(y / 2), int(x / 2)))
cv.namedWindow(
OriginalPicture,cv.WINDOW_FREERATIO)
w,h
=img.shape[0:2]
test
= cv.resize(img,((2*w,2*h)))
cv.namedWindow(
resize,cv.WINDOW_FREERATIO)

旋转:

rows,cols = img.shape
center
=((cols-1)/2,(rows-1)/2)
M
= cv2.getRotationMatrix2D(center,45,1)
#定义旋转矩阵,第一个参数是中心点,第二个参数是旋转角度,第三个参数是缩放比例
dst = cv2.warpAffine(img,M,(cols,rows),borderValue=200)
#进行变换,第一个参数是原图,第二个参数是变换矩阵,第三个参数是变换后的图像尺寸大小,第四个参数可省,为边界填充值,默认为0

变换矩阵法(理论上可以实现本文所有的几何变换):

def change_jvzhen(src1):
    rows,cols = src1.shape
    M = np.float32([[1,0,100],
                    [0,1,500]])#定义变换矩阵,先列再行
    dst = cv2.warpAffine(src1,M,(cols,rows))#仿射变换函数进行变换,第一个参数是原图,第二个参数是变换矩阵,第三个是输出图像的大小

镜像变换:

img1 = cv2.flip(img,1)  #镜像
0表示绕×轴翻转;
1表示绕y轴翻转;
-1表示绕×轴、y轴两个轴翻转。
参数3:
  可选参数。用于设置输出数组

参考链接:https://mp.weixin.qq.com/s/rBROWai8xHh3OtTthFOpsA

 

以上是关于图像各种变换的主要内容,如果未能解决你的问题,请参考以下文章

python ---- 图像小波变换DWT

图像处理各种变换运算算法的简明原理作用和应用场合

图像各种变换

matlab各种灰度变换怎么实现以及观察

各种变换滤波和噪声的类型和用途总结

OpenCV3图像操作