opencv+python 如何使用橡素坐标和numpy实现图像平移、旋转
1.opencv+python 如何使用橡素坐标和numpy实现图像平移、旋转
2.opencv-python 轮廓线的最小面积的外接旋转矩形 和 旋转3.OPENCV+PYTHON 棋盘格及其使用 探索学习平移 建议 图片长宽不一样
import cv2 import numpy as np # # 通过cv2.warpAffine()实现移动 # img=cv2.imread('D:\Python_OpenCV\chapter3_Pics\weiqi1.jpg') # 构造移动矩阵M,设在x轴方向移动50个像素和在y轴方向移动25个像素的距离 M = np.float32([[1, 0, 50], [0, 1, 25]]) # 图像形象 print(img.shape) # rows 对应 y,cols 对应 x 按照(y,x)确定像素位置,与常规思维不大一样 rows, cols = img.shape[0:2] print(img[rows-1,cols-1]) # 注意rows和cols需要反置,即先列后行 dst = cv2.warpAffine(img, M, (2*cols, 2*rows)) cv2.imshow('Origin_image', img) cv2.imshow('New_picture', dst) # # 通过矩阵乘法实现移动 # img_dest = np.zeros((rows*2,cols*2,3),np.uint8) # 构造移动矩阵M,设在x轴方向移动50个像素和在y轴方向移动25个像素的距离 M = np.float32([[1, 0, 50], [0, 1, 25]]) # 修改各个像素的坐标 for y in range(rows): for x in range(cols): #print( img[y,x,:]) point = np.float32([x,y,1]) x_,y_=np.dot(point,np.transpose(M)) # print(x_,y_) img_dest[np.int32(y_), np.int32(x_), 0]= img[y,x,0] img_dest[np.int32(y_), np.int32(x_), 1]= img[y,x,1] img_dest[np.int32(y_), np.int32(x_), 2]= img[y,x,2] cv2.imshow('img_dest', img_dest) cv2.waitKey(0) cv2.destroyAllWindows()
旋转
import cv2 img = cv2.imread('D:\Python_OpenCV\chapter3_Pics\weiqi1.jpg') rows, cols = img.shape[:2] # 旋转30度 M = cv2.getRotationMatrix2D((cols/2, rows/2), 30, 1) dst = cv2.warpAffine(img, M, (cols,rows), borderValue=(255,255,255)) rows, cols = img.shape[0:2] img_dest = np.zeros((rows*2,cols*2,3),np.uint8) for y in range(rows): for x in range(cols): #print( img[y,x,:]) point = np.float32([x,y,1]) x_,y_=np.dot(point,np.transpose(M)) # print(x_,y_) x__ = np.int32(x_) y__ = np.int32(y_) if(y__<rows) and (x__ <cols): img_dest[np.int32(y_), np.int32(x_), 0]= img[y,x,0] img_dest[np.int32(y_), np.int32(x_), 1]= img[y,x,1] img_dest[np.int32(y_), np.int32(x_), 2]= img[y,x,2] cv2.imshow('Image', img) cv2.imshow('Rotation image 1', dst) cv2.imshow('Rotation image 2', img_dest) cv2.waitKey(0) cv2.destroyAllWindows()
总结:
1、rows 对应 y,cols 对应 x 按照(y,x)确定像素位置,与常规思维不大一样
2、按照(x,y)方式构造仿射矩阵如何使用。
合集:
opencv-python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)