Ограничение селекторов уникальными родительскими идентификаторами div (.each?)

Проблема в том, что вы не читаете документацию inRange : D

, которая сообщает следующее:

То есть, dst (I) устанавливается в 255 (все 1-биты), если src (I) находится в пределах указанных 1D, 2D, 3D, ... и 0. В противном случае

, и вы проверяете для 1

# cv2.inRange will create a mask (binary array) where the 1 values
# are blue pixels and 0 values are any other colour out of the blue
# range defined by hsv_l and hsv_h
return 1 in cv2.inRange(hsv, hsv_l, hsv_h)

Итак, решение состоит в том, чтобы изменить его на:

return 255 in cv2.inRange(hsv, hsv_l, hsv_h)

Я проверил его с вашим изображением и вернул true, также с черно-белым изображением (BGR хотя) и возвращает false.

На мой взгляд, выбранные вами синие диапазоны немного далеки от фиолетовой стороны ... Вы можете использовать hsv colorpicker, подобный этому http: // colorizer .org / и выберите диапазоны, которые вам понравятся. Просто помните, что OpenCV использует H -> Hue / 2, а S и V - как проценты (0-100), и вы просто делите их на 100 (0-1.) И умножьте их на 255.

0
задан Rory McCrossan 19 January 2019 в 16:13
поделиться

1 ответ

Существует ряд методов обхода jQuery и селекторов css, которые вы можете использовать - вместе с селектором $(this) - для индивидуальной идентификации элементов с одинаковыми классами (никогда не идентификаторы - не поддавайтесь искушение использовать идентификаторы, если будет более одного элемента с одинаковым идентификатором. Просто используйте классы.)

Например, вы можете получить элемент, по которому щелкнули, $(this) и перейти к следующему уровню, используя parent() или даже выше - так высоко, как вы хотите пройти через closest() - и затем используйте find(), чтобы вернуться к определенному элементу. Смотрите демонстрационный фрагмент.

$('.aBob').click(function(){
  $(this).closest('.myDiv').find('.nxtDiv').show();
});
.nxtDiv{display:none;color:red;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="myDiv">
  <div class="nxtDiv">Found the first</div>
  <aside class="aBob">First</aside>
</div>
<div class="myDiv">
  <div class="nxtDiv">Found the second</div>
  <aside class="aBob">Second</aside>
</div>

Вы также можете использовать селекторы css (Обратите внимание, что все селекторы jQuery - просто селекторы css3! ) , чтобы найти определенное число чего-либо - например, щелкните четвертый <li>, определите это, затем покажите 4-й скрытый подпод:

/* Here are a couple different ways to do this, uncomment one or the other*/
$('li').click(function(){
  var num = $(this).data('fred');
  //$('.outer div:nth-child(' + num + ')').show();
  // -OR-
  $('.outer').find('div:nth-child(' + num + ')').show();
});
[ 114]
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<ul>
  <li data-fred="1">LI One</li>
  <li data-fred="2">LI Two</li>
  <li data-fred="3">LI Three</li>
  <li data-fred="4">LI Four</li>
</ul>
<div class="outer">
  <div>First inner div</div>
  <div>Second inner div</div>
  <div>Third inner div</div>
  <div>Fourth inner div</div>
</div>

0
ответ дан gibberish 19 January 2019 в 16:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: