首先介绍cv2.rotate和shape
# shape 返回一个数组,数组第一个元素为高,第二个为宽,第三个为厚度
# 此shape在rotate后,三个数据的顺序不变
height,width,_=cv_pic.shape
下述代码实现了由矩形图像转换为圆形图像,重点关注cv2.warpPolar部分
def chg_to_polar(self, img_src):
cv_img = cv2.rotate(img_src, cv2.ROTATE_90_COUNTERCLOCKWISE)
ih, iw, _ = img_src.shape
x=min(ih, iw)
cv_img = cv2.warpPolar(cv_img, (x,x), (x / 2, x/ 2), 0.7*x,
cv2.INTER_NEAREST | cv2.WARP_INVERSE_MAP)
return cv_img
cv_img是要进行处理的图像
(x,x)是处理后的图像大小
(x / 2, x/ 2)是圆心
0.7*x是圆的半径
cv2.INTER_NEAREST:插值方式
cv2.WARP_INVERSE_MAP:代表此时是由矩形变成圆
此处可以正常使用,至于更多用法,没搞清楚,作为待解决问题
上述使用cv2.rotate实现旋转功能
Qlabel.setAlignment
self.sonar_img_label = QLabel(self.sonar_tab)
# 设置图像居中对齐
self.sonar_img_label.setAlignment(Qt.AlignHCenter)
self.sonar_img_label.setObjectName(u"sonar_img_label")
对齐方式包括:
Qt.AlignLeft(水平方向靠左对齐) 、Qt.AlignRight(水平方向靠右对齐)、Qt.AlignCenter(水平方向居中对齐)、Qt.AlignJustify(水平方向调整间距两端对齐)、Qt.AlignTop(垂直方向靠上对齐)、Qt.AlignBottom(垂直方向靠下对齐)、Qt.AlignVCenter(垂直方向居中对齐)
接下来是我想要学习的重点,多线程