Sub*_* S. 8 python opencv numpy image-processing python-2.7
我有个问题。
我正在OpenCV中对某些捕获的图像执行一系列操作(调整大小,复制等),但是我想对这些图像设置一些特定的元数据(属性名称也应由我定义),这些操作将保留下来。并可以稍后提取。我没有设置分辨率值或这些操作后会更改的任何其他值。我怎样才能做到这一点?我听说过pyexiv2,但从未见过涉及OpenCV的示例。
提前致谢!
因此,最终,您可以将 2 个文件内容(数据和元数据)隐藏在您自己的 python 类后面:
import cv
import pyexiv2
class MyImage():
_filename = None
_data = None
_metadata = None
def __init__(self,fname):
_filename = fname
_data = cv.LoadImage(_filename)
_metadata = pyexiv2.ImageMetadata(_filename)
_metadata.read()
def addMeta(self,key,value):
_metadata[key] = pyexiv2.ExifTag(key, value)
def delMeta(self,delkey):
newdict = {key: value for key, value in some_dict.items()
if value is not delkey}
def resize(self,newx,newy):
tmpimage = cv.CreateMat(newy, newx, cv.CV_8UC3)
cv.Resize(_data,tmpimage)
_data = tmpimage
try: # Set metadata tags to new size if exist!
_metadata['Exif.Image.XResolution'] = newx
_metadata['Exif.Image.YResolution'] = newy
except:
pass
def save(self):
cv.SaveImage(_filename,_data)
_metadata.write()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5856 次 |
| 最近记录: |