通过追踪颜色的hsv值,使画面只留下长方形,在进行二值化,并通过对图片几何变换使长方形摆正

    科技2024-12-07  26

    img =cv2.imread(‘zfx.png’)#读取 cv2.namedWindow(‘image’,cv2.WINDOW_NORMAL) cv2.namedWindow(‘image3’,cv2.WINDOW_NORMAL) cv2.namedWindow(‘image2’,cv2.WINDOW_NORMAL) cv2.namedWindow(‘image1’,cv2.WINDOW_NORMAL) cv2.namedWindow(‘img’,cv2.WINDOW_NORMAL) cv2.imshow(‘image’,img) img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)#转化为hsv的的图 cv2.imshow(‘image3’,img2) lower_blue=np.array([110,50,50])#红色下限 upper_blue=np.array([255,255,200])#红色上限 mask=cv2.inRange(img2,lower_blue,upper_blue)#追踪你所需要的颜色的物品#读取红色物体,但未灰色 cv2.imshow(‘image2’,mask) res=cv2.bitwise_and(img,img,mask=mask)#让hsv的图有色彩#二值化处理,让其有颜色 cv2.imshow(‘image1’,res) rows,cols,num=res.shape

    这里的第一个参数为旋转中心,第二个为旋转角度,第三个为旋转后的缩放因子

    可以通过设置旋转中心,缩放因子,以及窗口大小来防止旋转后超出边界的问题

    M=cv2.getRotationMatrix2D((cols/2,rows/2),-20,0.6) M=cv2.getRotationMatrix2D((cols/2,rows/2),-20,0.6)

    第三个参数是输出图像的尺寸中心

    dst=cv2.warpAffine(mask,M,(1cols,1rows))

    while(1): cv2.imshow(‘img’,dst) if cv2.waitKey(1)&0xFF==27: break cv2.destroyAllWindows()

    在这里插入图片描述

    Processed: 0.016, SQL: 8