① 如何用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新建一個圖像。然後遍歷兩個圖片每個像素的顏色信息,不一樣的點加到新建的圖像上面最後保存圖片不就行了。。