如何通过一张图片找到你的位置?

由头:新学期整理一下电脑里的文件,发现以前在看《社会工程:安全体系中的人性漏洞》这本书的时候记录了这个事情——可以从一张图片定位到该图片的拍摄地点。今天就把这个流程再走一遍,记录在博客里面,从而电脑里又整洁了一些。:)

0x01拍摄一张图片

测试手机:小米4

手机拍摄一张图片,并且将该图片完整地发送到电脑上。查看一下具体信息,GET经度纬度。

纬度:32;6;41.330499999996384
经度:118;55;34.1856999999726
度分秒转化成度结果:(http://www.gzhatu.com/du2dfm.html)

纬度:32.111480694444445
经度:118.92616269444444



0x02定位

google地图:

http://www.google.cn/maps/(无需翻墙)

搜索框输入32° 6′ 41.330499999996384″ N, 118° 55′ 34.1856999999726″ E 

遗憾的是google之前(大概是14年,我读这本书的时候)是可以精确定位的,现在缩小的精度,只可以识别到大致的位置。


google earth:(需翻墙)

搜索框输入:32.111480694444445 N,118.92616269444444 E

图中红点的是我实际的位置(我标上去的),黄色图钉是搜索的结果,相当精确...



0x03所以

所以我们可以知道,图片有的时候是保存了我们的地理位置信息的。

如果想要避免这个信息被别人知道的话,我们可以在原图上,再次截图或者删除个人信息(windows 右键 删除属性和个人信息)即可。:)

### 如何处理或定位缺失的图片文件 当在数据集中发现图像文件缺失或者其大小为零时,可以采取以下措施来解决这一问题: #### 1. **确认问题图像的具体位置** 需要先找到哪些图像是有问题的。可以通过遍历整个数据集目录并检查每个文件的状态来进行排查。如果某个文件的大小为零,则说明它可能已经损坏或未正确解压。 使用 Python 脚本来扫描目标路径下的所有文件,并记录下那些异常情况(如文件大小为零的情况),以便后续修复操作。 ```python import os def find_zero_size_images(directory): zero_size_files = [] for root, dirs, files in os.walk(directory): for file in files: filepath = os.path.join(root, file) if os.path.getsize(filepath) == 0: zero_size_files.append(filepath) return zero_size_files directory_path = '/path/to/your/dataset' zero_size_list = find_zero_size_images(directory_path) if zero_size_list: print(f"The following images have a size of 0 bytes:\n{zero_size_list}") else: print("No zero-size image found.") ``` 上述脚本会返回一个列表 `zero_size_list` ,其中包含了所有大小为零的图像文件路径[^1]。 --- #### 2. **重新下载或恢复丢失的数据** 一旦确定了哪些文件存在错误,下一步就是尝试从原始源重新获取这些文件。这通常涉及以下几个方面: - 如果是从公开数据库(例如 nuScenes 数据集)获得的数据,那么可以直接访问官方发布的压缩包链接,重新下载对应部分; - 对于自定义采集的数据集来说,应该联系相关人员再次上传所需的素材副本。 另外一种可能性是某些文件虽然存在于磁盘上但由于传输过程中的意外事件而变得不可用。此时可考虑利用备份机制还原受影响的部分。 --- #### 3. **验证新加入资源的有效性** 完成替换之后还需要进一步测试新的版本是否能够正常加载以及参与模型训练流程当中去。下面给出一段简单的代码片段用于检验单张照片能否被成功打开: ```python from PIL import Image def validate_image(image_path): try: img = Image.open(image_path) img.verify() # Ensure the file is an actual image and not corrupted. return True except (IOError, SyntaxError) as e: return False for path in zero_size_list: result = validate_image(path) if not result: print(f"{path} still invalid after replacement.") ``` 此函数接受一张图片作为输入参数并通过 Pillow 库对其进行基本校验。如果一切顺利的话则表明当前实例处于良好状态;反之则提示用户继续查找其他潜在原因。 --- #### 4. **自动化批量修正方案** 对于大规模项目而言手动逐条调整显然效率低下,所以建议开发一套自动化的解决方案以应对类似状况的发生。比如结合前面提到过的 OpenCV 技术实现对破损区域的选择裁剪功能,从而保留有用的信息同时剔除无意义的内容出来。 以下是基于前述引用内容的一个例子展示怎样运用 python 和 opencv 来执行这样的任务 : ```python import cv2 import numpy as np def crop_and_save(input_dir, output_dir): if not os.path.exists(output_dir): os.makedirs(output_dir) for filename in os.listdir(input_dir): input_filepath = os.path.join(input_dir, filename) # Load image using OpenCV original_img = cv2.imread(input_filepath) if original_img is None or original_img.size == 0: continue height, width = original_img.shape[:2] # Define cropping region coordinates here according to your needs... start_row, end_row = int(height * .2), int(height *.8 ) start_col, end_col =int(width*.2 ), int( width* .7 ) cropped_img=original_img[start_row:end_row ,start_col :end_col ] save_name=os.path.splitext(filename)[0]+"_cropped"+os.path.splitext(filename)[-1] out_put_file=os.path.join(output_dir,save_name) cv2.imwrite(out_put_file,cropped_img) input_directory='/source/images/' output_directory='./processed_images/' crop_and_save(input_directory,output_directory) ``` 以上程序段落实现了读入一组指定格式的照片集合后按照预设规则截取出感兴趣部位保存至另一处的功能[^2]。 --- ### 总结 综上所述,针对因各种因素造成的图像文件遗失现象给出了较为系统的处置办法,包括但不限于快速甄别受损个体、及时补充遗漏资料以及构建长效预防体系等方面的工作要点介绍。希望对你有所帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值