① 如何用python分别提取出某个像素的rgb值并写入一个一行三列的数组中。
可以使用 Python Image Library 做,load() 函数会返回一个对象,这个对象我们可以把它当作一个二维数组对待,而数组中存放的就是点的 RGB 值,可以很容易地访问到任何像素点的 RGB 值:
fromPILimportImage
#可以支持很多种图片格式.
im=Image.open("your_picture.jpg")
pix=im.load()
#获得图片的尺度,可以用于迭代
printim.size
#获得某个像素点的RGB值,像素点坐标由[x,y]指定
printpix[x,y]
#设置[x,y]点的RGB的值为value
pix[x,y]=value
② 如何用python提取出两幅图像中不同的部分
简单说,两附图之间对应像素相减,然后求绝对值,差异大于某个特定值的就认为是不同点。(如果你的图片是jpg压缩,那么由于离散余弦变换过程去掉了高频信息,会导致图像颜色变化剧烈的部分出现细微锯齿状差异)
使用Numpy操作,np.abs(img1-img2)>thr。即可得到
③ 提取HSV颜色特征,并计算维数的熵,最后保存特征和熵,形式:图像名、特征和熵,用python实现,怎么实现
可以使用Python版的opencv 来实现。
现读取图片:
importcv2
importnumpyasnp
image=cv2.imread('./src/q5.png')
HSV=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
计算熵
img=np.array(HSV)
foriinrange(len(img)):
forjinrange(len(img[i])):
val=img[i][j]
tmp[val]=float(tmp[val]+1)
k=float(k+1)
foriinrange(len(tmp)):
tmp[i]=float(tmp[i]/k)
foriinrange(len(tmp)):
if(tmp[i]==0):
res=res
else:
res=float(res-tmp[i]*(math.log(tmp[i])/math.log(2.0)))
保存:
HSV图形可以直接存储,特征可以存xml中~
cv2.imwrite("具体路径",HSV)
④ 提取颜色特征并计算熵,使用python实现
正好学到这,练下手。比较晚了,所以写的比较简单,不明白了明天再说
⑤ 如何用python提取图片中数值
这个还是比较难的
问题关键不在数值
而是你怎么识别出线条和原点
⑥ python怎么提取出文件里的指定内容
python读取文件内容的方法:
一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中:
all_the_text = open('thefile.txt').read( )
# 文本文件中的所有文本
all_the_data = open('abinfile','rb').read( )
# 二进制文件中的所有数据
为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用的文件对象占用内存。举个例子,对文本文件读取:
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
不一定要在这里用Try/finally语句,但是用了效果更好,因为它可以保证文件对象被关闭,即使在读取中发生了严重错误。
二.最简单、最快,也最具Python风格的方法是逐行读取文本文件内容,并将读取的数据放置到一个字符串行表中:list_of_all_the_lines = file_object.readlines( )
这样读出的每行文本末尾都带有"
"符号;如果你不想这样,还有另一个替代的办法,比如:
list_of_all_the_lines = file_object.read( ).splitlines( )
list_of_all_the_lines = file_object.read( ).split('
')
list_of_all_the_lines = [L.rstrip('
') for L in file_object]
⑦ 请教各位大神,如何用python提取出两幅图像中不同的部分
用PIL新建一个图像。然后遍历两个图片每个像素的颜色信息,不一样的点加到新建的图像上面最后保存图片不就行了。。