机器视觉实用工具集NO.2——图像的90度旋转和翻转

1、图像的90度旋转:

def rota90(inputimage, isclockwise=False):
    """
    图像旋转90度:
    isclockwise=True,顺时针
    isclockwise=False,逆时针
    
    """
    if type(inputimage)==type(np.array([])):
        if len(inputimage.shape)==3:
            if isclockwise:
                res,inputimage=rota90(inputimage)
                if res:
                    dst= inputimage.reshape(int(inputimage.size/3),3)
                    dst=np.array(dst[::-1])
                    dst=dst.reshape(inputimage.shape[0],inputimage.shape[1],inputimage.shape[2])
                    return True,dst 
                else:
                    return False,inputimage                
            else:                
                 inputimage = inputimage.transpose(1,0,2) #实现行列置换;
                 inputimage = inputimage[::-1] #实现水平镜像;
                 return True,inputimage
        elif len(inputimage.shape)==2:
            if isclockwise:
                res,inputimage=rata90(inputimage)
                if res:
                    dst= inputimage.reshape(int(inputimage.size/3),3)
                    dst=np.array(dst[::-1])
                    dst=dst.reshape(inputimage.shape[0],inputimage.shape[1],inputimage.shape[2])
                    return True,dst
                else:
                    return False,inputimage
            else:                
                 inputimage = inputimage.transpose(1,0) #实现行列置换;
                 inputimage = inputimage[::-1] #实现水平镜像;
                 return True,inputimage            
        
    else:
        print("wrong image type,must be np.array")
        return False,inputimage

原图:机器视觉实用工具集NO.2——图像的90度旋转和翻转

res,rimg=rota90(img,isclockwise=True)#顺时针90度:机器视觉实用工具集NO.2——图像的90度旋转和翻转 ,

res,rimg=rota90(img)#逆时针90度:机器视觉实用工具集NO.2——图像的90度旋转和翻转

2、图像的180度旋转:

def rota180(inputimage): 
    """
    图像旋转180度
    """
    if type(inputimage)==type(np.array([])):
        if len(inputimage.shape)==3:
            dst= inputimage.reshape(int(inputimage.size/3),3)
            dst=np.array(dst[::-1])
            dst=dst.reshape(inputimage.shape[0],inputimage.shape[1],inputimage.shape[2])           
            return True,dst
        elif len(inputimage.shape)==2:
            dst= inputimage.reshape(int(inputimage.size/1),1)
            dst=np.array(dst[::-1])
            dst=dst.reshape(inputimage.shape[0],inputimage.shape[1])           
            return True,dst
    else:
        print("wrong image type,must be np.array")
        return False,inputimage

res,rimg=rota180(img)#180度旋转:机器视觉实用工具集NO.2——图像的90度旋转和翻转

3、图像的水平翻转:

def flipH(inputimage): 
    """
    图像水平翻转
    """
    if type(inputimage)==type(np.array([])):
        if len(inputimage.shape)==3:
            dst= inputimage.reshape(int(inputimage.size/3),3)
            dst=np.array(dst[::-1])
            dst=dst.reshape(inputimage.shape[0],inputimage.shape[1],inputimage.shape[2])           
            return True,dst[::-1]
        elif len(inputimage.shape)==2:
            dst= inputimage.reshape(int(inputimage.size/1),1)
            dst=np.array(dst[::-1])
            dst=dst.reshape(inputimage.shape[0],inputimage.shape[1])           
            return True,dst[::-1]
    else:
        print("wrong image type,must be np.array")
        return False,inputimage

res,rimg=flipH(img):机器视觉实用工具集NO.2——图像的90度旋转和翻转

 3、图像的垂直翻转:

def flipV(inputimage):
    """
    图像垂直翻转
    """
    if type(inputimage)==type(np.array([])):
        return True,inputimage[::-1]
    else:
        print("wrong image type,must be np.array")
        return False,inputimage        

res,rimg=flipV(img):机器视觉实用工具集NO.2——图像的90度旋转和翻转

 

 

 

 

 

上一篇:图像融合opencv中addWeighted()


下一篇:【个人笔记】OpenCV4 C++ 快速入门 09课