opencv_createsamples и opencv_traincascade, а также необходимые им DLL-библиотеки. Распакуйте их в рабочий каталог в корне диска, без русских букв и пробелов в названии. Здесь и далее предполагается, что C:\MyDirName - ваш рабочий каталог.negatives.dir C:\MyDirName\negatives\*.jpg /B /S >C:\MyDirName\negatives\negatives_abs.txtdir C:\MyDirName\negatives\*.jpg /B >C:\MyDirName\negatives\negatives_rel.txtC:\MyDirName\positives и C:\MyDirName\training. Поместите ваше изображение - положительный пример в каталог C:\MyDirName\ и назовите его positive.jpg. В качестве положительного примера желательно разместить ваш объект на светлом фоне, если он тёмный, и наоборот.opencv_createsamples. Команда будет выглядеть примерно следующим образом:C:\MyDirName\opencv_createsamples.exe -info positives\info.lst -img positive.jpg -bg negatives\negatives_rel.txt -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1 -bgcolor 0 -bgthresh 0 -w 50 -h 50 -num 100C:\MyDirName\opencv_createsamples.exe -info positives\info.lst -num 100 -w 20 -h 20 -vec positives\positives.vecC:\MyDirName\opencv_traincascade.exe -data training -vec positives\positives.vec -bg negatives\negatives_abs.txt -numStages 100 -numPos 100 -numNeg 100 -featureType haar -w 20 -h 20 -minHitRate 0.999 -maxFalseAlarmRate 0.4 -precalcValBufSize 4048 -precalcIdxBufSize 4048 -numThreads 24 -acceptanceRatioBreakValue 10e-5document.querySelector('.close').addEventListener('click', function(e){
e.stopPropagation()
document.querySelector('.result').insertAdjacentHTML('beforeend', '<div>Close</div>');
});value = 1000 + 135 * (15000 - 1000) / 180 = 11500
ширина 150px в масштабе 170%. Сверху точно той же ширины div с тёмной заливкой. CodePen.aspect-ratio хорошо конечно, но поддержка пока не очень.<div class="out">
<div class="in">
<img src="test_img.png" alt="">
</div>
</div>.out {
position: relative;
width: 200px;
height: 100px;
background: #000;
}
.in {
position: absolute;
top: 0;
bottom: 0;
height: 100%;
right: 10%;
background: red;
}
.in img {
display: block;
height: 100%;
width: auto;
}relative внешний блок вкладываем absolute вложенный, растягиваем его по высоте, и как-то его по ширине позиционируем (я использовал right: 10%;. Ширину не указываем - ее сформирует img, который блочный и тоже растянут по высоте (смасштабирован к текущему блоку)..in:before { content: url("test_img.png"); } но это не работает - картинка грузится, но не масштабируется как надо. if call.data == 'apple' or 'melon': #Вот в этом месте проблемаif call.data in ('apple', 'melon'):if call.data == 'apple' or call.data == 'melon':if (call.data == 'apple') or ('melon' != ''):if (call.data == 'apple') or True:if True:Мое решение:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for (let i = 0; i <= arr.length; i++) {
obj[i + 1] += arr;
}
console.log(obj);+= ? Вы же не плюсуете к чему то, а назначаете значение. То есть - obj[i + 1] += arr;
+ obj[i + 1] = arr;- obj[i + 1] = arr;
+ obj[i + 1] = arr[i];let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for (let i = 1; i <= arr.length; i++) {
obj[i] = arr[i-1];
}
console.log(obj);let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = arr.reduce((a, c, i) => (a[i+1] = c, a), {});
console.log(obj); <!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>Document</title>
<style>
.cards {
width: 60%;
border: 2px solid red;
margin: 10px auto;
display: flex;
justify-content: space-between;
padding: 0 45px;
}
.card {
flex-shrink: 0;
position: relative;
width: 0;
height: 126px;
transition: 0.3s;
cursor: pointer;
}
.card:before {
content: "";
box-sizing: border-box;
position: absolute;
top: 0;
left: -45px;
width: 90px;
height: 100%;
background-color: blue;
border-style: inset;
border-radius: 10px;
}
.card:hover{
transform: translate(0, -20px);
}
</style>
</head>
<body>
<div class="cards">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
<div class="cards">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
</body>
</html>// массив 1..99
const range = Array(99)
.fill()
.map((_, i) => i + 1); // массив 1..99
// 6 неповторяющихся выигрышных
const win = Array(6)
.fill()
.map(() => range.splice(Math.floor(Math.random() * range.length), 1).pop())
.sort((a, b) => a - b);
// [ 1, 55, 69, 76, 91, 92 ]Для выбора выпавших чисел игрока этот же range уже использовать нельзя – в нём не хватает 6 чисел.