MATLAB Answers

Is there an equivalent of MATLAB's find() in opencv or numpy?

329 views (last 30 days)
Sharad C
Sharad C on 7 Mar 2017
Answered: Bill Tubbs on 1 Feb 2020
for image processing, i.e to find first/last array of matching pixels.

Answers (2)

Jan
Jan on 7 Mar 2017
Edited: Jan on 7 Mar 2017
This is obviously a question for a numpy and opencv forum. But let's see, what an internet search engine finds...
itemindex = numpy.where(array==item)

Bill Tubbs
Bill Tubbs on 1 Feb 2020
I wasn't sure about this but you are correct. They both return indexes. I'll share these examples in case they help someone.
>> x = [1 2 3; 2 3 4];
>> find(x==2)
ans =
2
3
>> x(find(x==2))
ans =
2
2
>> find(x==3)
ans =
4
5
Python:
>>> x = np.array([[1, 2, 3], [2, 3, 4]])
>>> np.where(x == 2)
(array([0, 1]), array([1, 0]))
>>> x[np.where(x == 2)]
array([2, 2])
>>> np.where(x == 3)
(array([0, 1]), array([2, 1]))
Interesting how different indexing is in the two languages!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!