提交 ca6fabf4 编写于 作者: 锦鲤AI幸运's avatar 锦鲤AI幸运 🎯

在菜单edit和鼠标右键 增加图片左右旋转功能 且有标注框的情况下不可以旋转,优化代码

上级 4df7ada9
...@@ -31,7 +31,7 @@ import cv2 ...@@ -31,7 +31,7 @@ import cv2
__dir__ = os.path.dirname(os.path.abspath(__file__)) __dir__ = os.path.dirname(os.path.abspath(__file__))
import numpy as np import numpy as np
from labelme import LabelFile
sys.path.append(__dir__) sys.path.append(__dir__)
sys.path.append(os.path.abspath(os.path.join(__dir__, '../..'))) sys.path.append(os.path.abspath(os.path.join(__dir__, '../..')))
...@@ -795,47 +795,50 @@ class MainWindow(QMainWindow, WindowMixin): ...@@ -795,47 +795,50 @@ class MainWindow(QMainWindow, WindowMixin):
self.actions.create.setEnabled(False) self.actions.create.setEnabled(False)
self.actions.undoLastPoint.setEnabled(True) self.actions.undoLastPoint.setEnabled(True)
def rotateLeftImg(self, _value=False): def rotateImg(self, filename, k, _value):
filename = self.mImgList[self.currIndex]
if os.path.exists(filename): self.actions.rotateRight.setEnabled(_value)
_value = True
self.actions.rotateLeft.setEnabled(_value)
pix = cv2.imread(filename) pix = cv2.imread(filename)
pix = np.rot90(pix, k=1) pix = np.rot90(pix, k)
cv2.imwrite(filename, pix) cv2.imwrite(filename, pix)
self.canvas.update() self.canvas.update()
self.loadFile(filename) self.loadFile(filename)
else:
_value = False def rotateImgWarn(self):
if self.lang == 'ch': if self.lang == 'ch':
self.msgBox.warning(self, "提示", "\n 请从图片列表选择一个需要旋转的图片,且确保图片存在!") self.msgBox.warning (self, "提示", "\n 该图片已经有标注框,旋转操作会打乱标注,建议清除标注框后旋转。")
else: else:
self.msgBox.warning(self, "Warn", "\n Please select an image from the list of images to rotate and make sure the image exists!") self.msgBox.warning (self, "Warn", "\n The picture already has a label box, and rotation will disrupt the label.\
It is recommended to clear the label box and rotate it.")
self.actions.rotateLeft.setEnabled(_value) def rotateLeftImg(self, _value=False):
def rotateRightImg(self, _value=False):
filename = self.mImgList[self.currIndex] filename = self.mImgList[self.currIndex]
if os.path.exists(filename): if os.path.exists(filename):
if self.itemsToShapesbox:
self.rotateImgWarn()
else:
_value = True _value = True
self.actions.rotateRight.setEnabled(_value) self.rotateImg(filename=filename, k=1, _value=_value)
pix = cv2.imread(filename)
pix = np.rot90(pix, k=-1)
cv2.imwrite(filename, pix)
self.canvas.update()
self.loadFile(filename)
else: else:
_value = False _value = False
self.rotateImgWarn()
self.actions.rotateRight.setEnabled(_value)
if self.lang == 'ch': def rotateRightImg(self, _value=False):
self.msgBox.warning(self, "提示", "\n 请从图片列表选择一个需要旋转的图片,且确保图片存在!")
else:
self.msgBox.warning(self, "Warn", "\n Please select an image from the list of images to rotate and make sure the image exists!")
filename = self.mImgList[self.currIndex]
if os.path.exists(filename):
if self.itemsToShapesbox:
self.rotateImgWarn()
else:
_value = True
self.rotateImg(filename=filename, k=-1, _value=_value)
else:
_value = False
self.rotateImgWarn()
self.actions.rotateRight.setEnabled(_value) self.actions.rotateRight.setEnabled(_value)
def toggleDrawingSensitive(self, drawing=True): def toggleDrawingSensitive(self, drawing=True):
......
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册