iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
自我挑戰組

python-資料分析與機器學習系列 第 28

DAY28-Haar特徵分類器(Ⅱ)

  • 分享至 

  • xImage
  •  

正樣本中要被偵測的物件要被框選出來,這個過稱我們稱為標記,標記的正確性對Haar特徵分類器模型影響極大,因此我們需要顯示出正樣本框選的區域。

顯示框選區域

清空指定資料夾的內容

def emptydir(dirname):
    if os.path.isdir(dirname):
        shutil.rmtree(dirname)
        sleep(2)  #需延遲,否則會出錯
    os.mkdir(dirname)

在圖片上繪製紅色的圖框,最後將繪製圖框後的圖片保存到picMark的目標資料夾中

from PIL import Image, ImageDraw
import shutil, os
from time import sleep

fp = open('Haar-Training_carPlate/training/positive/info.txt', 'r')
line = fp.readline()  #讀取一列文字
emptydir('picMark')
print('開始繪製圖框!')
while line:
    data = line.split(' ')
    img = Image.open('Haar-Training_carPlate/training/positive/' + data[0])  #讀取檔案
    draw = ImageDraw.Draw(img)  #繪圖
    n = data[1]  #圖框數量
    #繪製圖框
    for i in range(int(n)):
        x = int(data[2+i*4])
        y = int(data[3+i*4])
        w = int(data[4+i*4])
        h = int(data[5+i*4])
        draw.rectangle((x, y, x+w, y+h), outline='red')
    filename = (data[0].split('/'))[-1] #圖片檔的路徑中提取出檔名
    img.save('picMark/' + filename)  #存檔
    line = fp.readline()  #讀下一列文字
fp.close()   #關閉 'info.txt' 文字檔
print('繪製圖框結束!')

調整框選區域的長寬

fp = open('Haar-Training_carPlate/training/positive/info.txt', 'r')
line = fp.readline()
rettext = ''
print('開始轉換圖框!')
while line:
    data = line.split(' ')
    n = data[1]
    rettext += data[0] + ' ' + n + ' '
    #讀取原來資料
    for i in range(int(n)):
        x = float(data[2+i*4])
        y = float(data[3+i*4])
        w = float(data[4+i*4])
        h = float(data[5+i*4])
        if (w/h) < 3.8:  #如果寬長比小於3.8
            newW = h * 3.8  #寬=高*3.8
            x -= int((newW - w) / 2)  #計算新X位置
            if x<=0: 
            w = int(newW)
        rettext = rettext+str(int(x))+' '+data[3+i*4]+' '+str(int(w))+' '+data[5+i*4]
    line = fp.readline()
fp.close()

fp = open('Haar-Training_carPlate/training/positive/info.txt', 'w')
fp.write(rettext) 
fp.close()   
print('轉換圖框結束!')

---20231013---


上一篇
DAY27-Haar特徵分類器(Ⅰ)
下一篇
DAY29-Haar特徵分類器(Ⅲ)
系列文
python-資料分析與機器學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言