簡體   English   中英

從numpy中的2d圖像中提取特征向量

[英]Extract feature vector from 2d image in numpy

我有一系列兩種類型的2d圖像,分別是星形或五邊形。 我的目的是分別對所有這些圖像進行分類。 我有30個星圖和30個五邊形圖。 每個圖像的示例在此處並排顯示:

樣本圖片

在應用KNN分類算法之前,我需要從所有圖像中提取特征向量。 特征向量必須全部具有相同的大小,但是2d圖像的大小都不同。 我已經提取了圖像中的讀取內容,然后得到了一個帶有零和一的二維數組。

image = pl.imread('imagepath.png')

我的問題是如何處理image以產生有意義的特征向量,該特征向量包含足以讓我進行分類的信息。 每個圖像必須是一個向量,我將用於訓練和測試。

如果要使用opencv,請執行以下操作:

將圖像調整為標准尺寸:

import cv2
import numpy as np

src = cv2.imread("/path.jpg")
target_size = (64,64)

dst = cv2.resize(src, target_size)

轉換為一維向量:

dst = dst.reshape(target_size.shape[0] * target_size.shape[1])

在開始編碼之前,您必須確定哪些功能可用於此任務:

最簡單的方法是嘗試@Jordan答案中的方法,然后將整個圖像轉換為特征。 之所以可行,是因為這些類是簡單的模式,如果您使用的是KNN,那么這很有趣。 如果此方法無法正常運行,則以下步驟說明了如何解決該問題。

  1. 黑色像素的數量可能無濟於事,因為星形和五邊形的大小可能會有所不同。
  2. 尖角的數量很有可能會有用。
  3. 直線段的數量可能有用,但是由於形狀是手繪的,因此可能不可靠。

假設您想嘗試使用拐角數作為特征,可以參考此頁面以學習如何提取拐角。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM