簡體   English   中英

SimpleCV汽車檢測示例

[英]SimpleCV car detection example

所以......通過與SimpleCV,第5章的書實用計算機視覺的工作-同樣的例子在網上教程在這里 黃色汽車的平均顏色有一個非常不同的值,所以我回過了示例代碼,插入了一些更多的注釋,添加了一些東西來顯示(然后干凈地關閉)每個階段的圖像。

from SimpleCV import Image
import time

# Load images.
car_in_lot = Image("parking-car.png")
car_not_in_lot = Image("parking-no-car.png")

# Crop image to region-of-interest.
car = car_in_lot.crop(470,200,200,200)
car.show()
time.sleep(5)
car.show().quit()

# Create greyscale image showing how far from yellow various colors are.
yellow_car = car.colorDistance(Color.YELLOW)
yellow_car.show()
time.sleep(5)
yellow_car.show().quit()

# Subtract greyscale image from cropped image to show just the yellow portions.
only_car = car - yellow_car
only_car.show()
time.sleep(5)
only_car.show().quit()

print only_car.meanColor()

返回結果(0.6376000000000001, 2.096775, 5.170425) ,而不是本書和教程中給出的(25.604575, 18.880775, 4.4940750000000005)

帶車的裁剪停車位的第一張圖片看起來不錯......但是灰度圖像看起來很奇怪。 我得到的圖像旋轉了90度,並沒有像示例中那樣。 這是Dropbox上的鏈接

從那里...到目前為止顏色距離應該是什么...平均顏色值不正確。

關於為什么colorDistance()步驟返回一個像它一樣的時髦旋轉灰度圖像的任何想法或建議?

colorDistance似乎返回旋轉的翻轉圖像。 如果您進行快速轉換,則可以避免此類干擾。 例如

x,y,w,h   = 470,200,200,200
cImg      = Image('parking-car.png')
ncImg     = Image('parking-no-car.png')
car       = cImg.crop(x,y,w,h)
ncar      = nImg.crop(x,y,w,h)
ycar      = car.colorDistance(Color.YELLOW).rotateRight().flipHorizontal()
nycar     = ncar.colorDistance(Color.YELLOW).rotateRight().flipHorizontal()
only_car  = car - ycar
nonly_car = ncar - nycar 
carmc     = only_car.meanColor()
ncarmc    = nonly_car.meanColor()

print "yellow car present, mean color:", carmc
print "no yellow car present, mean color", ncarmc

至於平均顏色是不同的,我會假設圖像已經稍微調整或Color.YELLOW的值已經改變...

順便說一句,如果你要比較兩個已經調用了colorDistance方法的圖像(或者從另一個中減去一個裁剪),那么它們都以相同的方式進行了變換,因此你只需要進行rotateRight()。 ()顯示之前的最終圖像(如果有的話)。

暫無
暫無

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

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