首页 > 其他 > 详细

图像各种变换

时间:2020-06-11 02:15:56      阅读:37      评论:0      收藏:0      [点我收藏+]

平移:

  遍历像素即可,也可以用函数[ : , 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

 

图像各种变换

原文:https://www.cnblogs.com/fengxiaokang/p/13089573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!