我想從圖像中識別獨特的顏色。我使用CvScalar loc = cvGet2D(img, i, j);
, 並檢查位置是紅色還是綠色我使用CvScalar red = CvScalar.RED;
。 但是,布爾評估永遠不會返回true,因爲我的圖像包含紅色陰影。是否有任何修改CvScalar
的方法,使其忽略陰影,或者可能擺弄loc
變量?在javacv中使用cvScalar?
0
A
回答
0
因爲紅色通道中最細微的位會破壞你的(二進制)問題:'它是綠色的嗎? 您可能會在此處使用某種「距離」獲得更好的結果。
服用,每次的L2範數的 '找到' 和 '期望的' 顏色,如:
SQRT(R * R + B * B + G * G);
和閾值差異(以決定它是否'足夠接近')可能更好地工作
0
OpenCV以BGR格式存儲圖像,所以要獲得綠色通道的值,您可以使用loc.val(1)
(第二個通道),並獲取紅色通道,您可以使用loc.val(2)
。這些將返回範圍[0,255]中的數字。然後,您可以比較紅色和綠色通道像素值,查看像素是紅色還是綠色。
然而,除了通過每個像素循環。將更好的(更快)的方法:
- 分割圖像分成用
cvSplit
個體紅色和綠色通道。 - 使用
cvCmp
比較紅色和綠色通道,生成紅色通道大於綠色通道的二進制圖像。
相關問題
- 1. javacv中cvScalar構造函數的四個參數是什麼意思?
- 2. 在Jython中使用JavaCV
- 3. 在javacv中使用cvSetMouseCallback
- 4. 訂單cvScalar
- 5. 使用與從Ycbcr的OpenCV cvScalar值
- 6. JAVACV:使用javacv捕捉攝像頭
- 7. 如何在javaCV中使用medianBlur
- 8. UnsatisfiedLinkError在Mac上的Eclipse中使用JavaCV
- 9. NoClassDefFoundError當使用Javacv
- 10. 使用JavaCV和NetBeans
- 11. 如何使用JavaCV
- 12. 使用CameraDevice和CameraSettings javacv
- 13. 與Kotlin一起使用JavaCV
- 14. 使用javaCV跟蹤對象
- 15. Android中的JavaCV
- 16. cv :: bitwise_xor在JavaCV
- 17. 在純Java中學習JavaCV
- 18. 在javaCV中識別顏色
- 19. javacv:迭代CvSeq在Java中
- 20. 等效採用JavaCV
- 21. javaCV UnsatisfiedLinkError
- 22. JavaCV&FFmpegMediaMetadataRetriever:DuplicateFileException
- 23. 與javacv
- 24. 如何使用JavaCV在Android中加載ClassifierCascade?
- 25. 如何在JavaCV中使用鼠標事件?
- 26. 使用JavaCV在圖像中檢測圖案
- 27. 如何在android中使用javacv將圖像轉換爲視頻?
- 28. 如何在android中使用javacv/opencv集成音頻與視頻?
- 29. 無法在Android中使用JavaCV實現SURF
- 30. OpenCV的cvInRange()不工作有了cvScalar()