[英]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.