你好州枯培,你可以考虑使用numpy的函数来做,下面是例子败竖的python代码
image = np.zeros((400,400,3), dtype="uint8")raw = image.copy()
image[np.where((image==[0,0,0]).all(axis=2))] = [255,255,255]
cv2.imshow('Test0', image)
lower_black = np.array([0,0,0], dtype 册唯= "uint16")
upper_black = np.array([70,70,70], dtype = "uint16")
black_mask = cv2.inRange(image, lower_black, upper_black)
image[np.where((image == [0,0,0]).all(axis = 2))] = [155,255,155]
black_mask[np.where(black_mask == [0])] = [155]
你把上面的那个image的数值改成你需要改的目标就可以直接替换了。
你可以看看numpy.fromfile()方法,也可以自己open一个文件,再read()一定字节实现。前者是把整个原文件读入内存成为数组,再选择数组的一部分写入文件(numpy.tofile())。后者是从原文件中读入一些字节,再把这些字节write到新文件中。
因此,方法并不难,基本上就是一个copy过程。
特别要注意的是,二进制文件是不存储任何格式信息的,所以,一定要弄清楚这个文件是如何产生的,因此,在分割文件时不要把一个数所对或灶应的字节给分开。比如二进制文件中是32bit数据,那么,就要4字节为一个单位,不能在分割时分出一衫兄扮个尘兄1字节或2字节来,否则数据就错了。
NumPy是Python语言的一个扩充程序库。支持高级大量的春绝备维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了CPython的GIL(全局解释器锁),运行效率极好,是大量机器学习框架的基础库!
相关推荐:《Python基础教程》
NumPy的全名为Numeric Python,是一个开源的Python科学计算库,它包括:
·一个强大的N维数组对象ndrray;
·比较成熟的(广宏物播)函数库;
·用于整合C/C++和Fortran代码的工具包;
·实用的线性代数、傅里叶变换和随机数生成函数。
NumPy的优点:
·对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多;
·NumPy中的数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构,且其能够提升的性能是与数组中的元素成比例的;
·NumPy的大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得NumPy比纯Python代码高效得多。
当然,NumPy也有其不足之处,由于NumPy使用内存映射文件以达到最优的数据读写性能,而扒毁内存的大小限制了其对TB级大文件的处理;此外,NumPy数组的通用性不及Python提供的list容器。因此,在科学计算之外的领域,NumPy的优势也就不那么明显。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)