python 对废弃航片剔除

1.将pos信息导入cad,删除掉不想要的pos点
2.打开程序,选择剩余pos点,选择原航片文件夹,选择保存文件夹
import win32com.client
import pythoncom
import tkinter as tk
from tkinter import messagebox,filedialog
import os
import shutil

window = tk.Tk()
window.title("航测影像剔除1.0  by: 放放风")
window.geometry('341x100+500+200')  # 290 160为窗口大小,+1000 +10 定义窗口弹出时的默认展示位置

def vtpnt(x, y, z=0):
    """坐标点转化为浮点数"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))


def vtobj(obj):
    """转化为对象数组"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)


def vtFloat(list):
    """列表转化为浮点数"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, list)


def vtInt(list):
    """列表转化为整数"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, list)


def vtVariant(list):
    """列表转化为变体"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, list)


def list_format_conversion(old_list, step=2, deduction=None):
    new_list = []
    for counte in range(0, len(old_list), step):
        new_list.append(list(old_list[counte:counte + step])[:deduction])
    return new_list


def mkdir(path):
    folder = os.path.exists(path)
    if not folder:  # 判断是否存在文件夹如果不存在则创建为文件夹
        os.makedirs(path)

class Pic_eliminate:
    def __init__(self):
        self.cad_text = []
        self.file_text = []
    def Select_element(self):
        acad = win32com.client.Dispatch("AutoCAD.Application")
        doc = acad.ActiveDocument
        doc.Utility.Prompt("\n醉后不知天在水\n满船清梦压星河\n")
        mp = doc.ModelSpace  # 模型空间
        tk.messagebox.showinfo('提示', "请在屏幕拾取图元,以Enter键结束")
        try:
            doc.SelectionSets.Item("SS1").Delete()
        except:
            tk.messagebox.showinfo('警告', "Delete selection failed")
        slt = doc.SelectionSets.Add("SS1")
        slt.SelectOnScreen()
        for x in slt:
            if x.ObjectName == "AcDbText":
                self.cad_text.append(x.TextString)
    def file_open(self):

        Save_path = filedialog.askdirectory(title="选择原始影像文件夹")
        Save_path2 = filedialog.askdirectory(title="选择保存文件夹")

        if not Save_path:
            tk.messagebox.showinfo('提示', "请选择文件夹")
            return
        else:
            count = 0
            for files in os.walk( Save_path ):
                if count ==0:
                    count +=1
                else:
                    move_path_3 = files[0].split("\\")
                    move_path_4 = Save_path2 +"/" +  move_path_3[-1]
                    mkdir(move_path_4)
                    for path in files[2]:
                        for name in self.cad_text:
                            if name == path:
                                p = files[0] + "/" + path
                                shutil.copy(p,move_path_4)
            tk.messagebox.showinfo( '提示', "处理成功" )
pic_object = Pic_eliminate()
tk.Button(window, width=20, height=5, text="拾取POS数据", command=pic_object.Select_element).grid(row=0, column=0)
tk.Label(window, width=5).grid(row=0, column=1)
tk.Button(window, width=20, height=5, text="提取影像", command=pic_object.file_open).grid(row=0, column=2)

window.mainloop()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值