Что такое эквивалент cv2.threshold
и cv2.inRange
в MATLAB?Эквивалентная пороговая функция OpenCV в MATLAB
ответ
Давайте решать одну функцию в то время:
cv2.threshold
Ближайшим эквивалентом будет использовать im2bw
. Этот порог создает изображение, основанное на указанном вами уровне интенсивности. Однако то, что отличается от im2bw
по сравнению с cv2.threshold
, заключается в том, что вы не можете указать, какое значение порогового значения будет. im2bw
предполагает, что это двоичный код 1. Таким образом, если вы хотите преобразовать это в другое значение, вам нужно будет отобразить изображение до uint8
(или любого другого типа данных вашего изображения), а затем установить любые местоположения, которые равны 1 к какой бы стоимости вы ни пожелали. Таким образом, предполагается, что вашим образом будет загружено в с imread
и изображением называется im
, level
является пороговым уровнем вы хотите порог при и maxval
является конечным значением выходного вы хотите, чтобы каждый пороговый пиксель взять, вы могли бы сделать:
out = im2bw(im, level/255);
out = uint8(out);
out(out == 1) = maxval;
Важно отметить, что пороговый уровень нормализован между [0,1]
. Я разделил на 255, так как большинство изображений uint8
, и поэтому деление на 255 приведет к диапазону [0,1]
. cv2.threshold
также имеет пороговое значение через Otsu. Вы можете сделать это в MATLAB через graythresh
. graythresh
обеспечит оптимальный порог между [0,1]
, который вы можете ввести непосредственно в im2bw
. Поэтому:
out = im2bw(im, graythresh(im));
out = uint8(out);
out(out == 1) = maxval;
cv2.inRange
Эта функция не поддерживается изначально в среде MATLAB. То, что вам нужно сделать, это взять каждую плоскость вашего изображения (только один для оттенков серого, три для цвета) и индивидуально проверить, есть ли пиксели, находящиеся в допустимых диапазонах. Если есть, вы должны установить это в логическое значение true
. Таким образом, для черно-белых изображений, вы могли бы сделать что-то вроде:
minval = ...; %// Define minimum value here
maxval = ...; %// Define maximum value here
out = (im >= minval & im <= maxval);
Для цветных изображений, вы могли бы сделать что-то вроде:
minval = ...; %// Define three element vector here for each colour plane i.e. [0 128 128];
maxval = ...; %// Define three element vector here for each colour plane i.e. [0 128 128];
out = true(size(im,1), size(im,2));
for p = 1 : 3
out = out & (im(:,:,p) >= minval(p) & im(:,:,p) <= maxval(p));
end
Что мы делаем здесь собирается самолет на самолете и проверки, посмотрите, находится ли каждая цветовая плоскость в пределах диапазона, указанного для каждого элемента, в minval
и maxval
. Как только мы найдем пиксель, который находится за пределами диапазона для любой цветовой плоскости, мы установили бы это место на false
.
Удачи вам!
- 1. эквивалентная функция sub2ind в opencv
- 2. Эквивалентная функция фильтра Matlab2 в OpenCV
- 3. Что такое эквивалентная функция matlab 'fix' в opencv?
- 4. Есть ли какая-либо функция в opencv, эквивалентная matlab conv2
- 5. Эквивалентная команда matlab <> opencv
- 6. эквивалентная функция subs() matlab в математике
- 7. Эквивалентная функция «датирования» (...) «MatLab» в Python?
- 8. Эквивалентная функция rdivide (matlab) в языке R
- 9. Эквивалентная функция TINV Excel в Matlab
- 10. Эквивалентная функция данных (datestring) Matlab в Python
- 11. niblack пороговая
- 12. Функция iffl2 Matlab в OpenCV
- 13. all() matlab function opencv
- 14. «эквивалентная функция» в Python
- 15. Эквивалентная функция в Mono.cecil
- 16. Функция эквивалента радона() в Matlab в OpenCV
- 17. Эквивалентная функция тензора факела для «поиска» в Matlab?
- 18. Любая эквивалентная функция C++/C с разреженной в MATLAB
- 19. Есть ли эквивалентная функция MATLAB dec2bin в Fortran?
- 20. Есть ли эквивалентная функция «eval» для быстрой, как в Matlab?
- 21. Что такое эквивалентная функция Python для «фильтра» в MATLAB?
- 22. Функция Matlab (improfile) в OpenCV - Python 2.7
- 23. Функция эквивалента Matlab Bwareaopen в OpenCV
- 24. Python эквивалентная функция cvCalcEigenObjects
- 25. Эквивалентная функция для file_get_contents()?
- 26. SQL LOOP Эквивалентная функция
- 27. Функция Stata, эквивалентная group_concat
- 28. Эквивалентная функция «chop» в Maple
- 29. Эквивалентная функция ST_Buffer в mysql
- 30. Функция move_uploaded_file, эквивалентная в django
Да! это ответ очень хорошо объяснен. Я также думал, что нет эквивалента функции MATLAB. Нужно изменить их или играть с индексами. Большое спасибо за ваш ответ ! – Maham
@Maham - Добро пожаловать :) В этом вопросе есть Python, OpenCV и MATLAB все в одном. Я не мог удержаться от ответа! – rayryeng
@Maham - У меня были небольшие опечатки в моем посте. Проверьте мои изменения. – rayryeng