Request a complete configuration file (requirements.txt) that works
I keep getting errors in the reproduction process but can't find a solution. Maybe there is something wrong with my configuration file?
My requirements.txt
python==3.8
certifi @ file:///C:/b/abs_91u83siphd/croot/certifi_1700501720658/work/certifi
cfgv==3.3.1
charset-normalizer==2.0.12
distlib==0.3.8
filelock==3.4.1
identify==2.4.4
idna==3.6
importlib-metadata==4.8.3
importlib-resources==5.2.3
install==1.3.5
largestinteriorrectangle==0.2.0
llvmlite==0.32.1
nodeenv==1.6.0
numba==0.49.1
numpy==1.21.6
opencv-contrib-python==4.3.0.38
opencv-python==4.7.0.72
platformdirs==2.4.0
pre-commit==2.17.0
PyYAML==6.0.1
requests==2.27.1
stitching==0.5.3
toml==0.10.2
typing_extensions==4.1.1
urllib3==1.26.18
virtualenv==20.16.2
wincertstore==0.2
zipp==3.6.0
Traceback (most recent call last):
stitching s1.jpg s2.jpg into result.jpg
**Traceback (most recent call last):**
File "D:\Tools\Anaconda3\envs\stitch\lib\runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "D:\Tools\Anaconda3\envs\stitch\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "D:\Tools\Anaconda3\envs\stitch\Scripts\stitch.exe\__main__.py", line 7, in <module>
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\stitching\cli\stitch.py", line 312, in main
panorama = stitcher.stitch(images, feature_masks)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\stitching\stitcher.py", line 108, in stitch
self.prepare_cropper(imgs, masks, corners, sizes)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\stitching\stitcher.py", line 190, in prepare_cropper
self.cropper.prepare(imgs, masks, corners, sizes)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\stitching\cropper.py", line 56, in prepare
lir = self.estimate_largest_interior_rectangle(mask)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\stitching\cropper.py", line 93, in estimate_largest_interior_rectangle
import largestinteriorrectangle
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\largestinteriorrectangle\__init__.py", line 1, in <module>
from .lir import lir, pt1, pt2
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\largestinteriorrectangle\lir.py", line 1, in <module>
from .lir_basis import largest_interior_rectangle as lir_basis
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\largestinteriorrectangle\lir_basis.py", line 91, in <module>
def span_map(grid, h_adjacency, v_adjacency):
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\decorators.py", line 198, in wrapper
disp.compile(sig)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler_lock.py", line 32, in _acquire_compile_lock
return func(*args, **kwargs)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\dispatcher.py", line 794, in compile
cres = self._compiler.compile(args, return_type)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\dispatcher.py", line 77, in compile
status, retval = self._compile_cached(args, return_type)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\dispatcher.py", line 91, in _compile_cached
retval = self._compile_core(args, return_type)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\dispatcher.py", line 104, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler.py", line 568, in compile_extra
return pipeline.compile_extra(func)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler.py", line 339, in compile_extra
return self._compile_bytecode()
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler.py", line 401, in _compile_bytecode
return self._compile_core()
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler.py", line 381, in _compile_core
raise e
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler.py", line 372, in _compile_core
pm.run(self.state)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler_machinery.py", line 341, in run
raise patched_exception
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler_machinery.py", line 332, in run
self._runPass(idx, pass_inst, state)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler_lock.py", line 32, in _acquire_compile_lock
return func(*args, **kwargs)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler_machinery.py", line 291, in _runPass
mutated |= check(pss.run_pass, internal_state)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\compiler_machinery.py", line 264, in check
mangled = func(compiler_state)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\core\typed_passes.py", line 288, in run_pass
parfor_pass.run()
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\parfors\parfor.py", line 2599, in run
ConvertNumpyPass(self).run(self.func_ir.blocks)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\parfors\parfor.py", line 1769, in run
new_instr = self._numpy_to_parfor(equiv_set, lhs, expr)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\parfors\parfor.py", line 1867, in _numpy_to_parfor
return self._numpy_map_to_parfor(equiv_set, call_name, lhs, args, kws, expr)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\parfors\parfor.py", line 1884, in _numpy_map_to_parfor
index_vars, loopnests = _mk_parfor_loops(pass_states.typemap, size_vars, scope, loc)
File "D:\Tools\Anaconda3\envs\stitch\lib\site-packages\numba\parfors\parfor.py", line 1736, in _mk_parfor_loops
for size_var in size_vars:
TypeError: Failed in nopython mode pipeline (step: convert to parfors)
'NoneType' object is not iterable
```
Maybe there is something wrong with def estimate_largest_interior_rectangle(self, mask):
And i cannot correctly import largestinteriorrectangle ,then I commented out the function and rewrote it with reference to issues:119 . It works out.
def estimate_largest_interior_rectangle(self, mask):
# largestinteriorrectangle is only imported if cropping
# is explicitly desired (needs some time to compile at the first run!)
# transform the panorama image to grayscale and threshold it
# gray = cv.cvtColor(mask, cv.COLOR_BGR2GRAY)
thresh = cv.threshold(mask, 0, 255, cv.THRESH_BINARY)[1]
# Finds contours from the binary image
cnts = cv.findContours(thresh.copy(), cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
cnts = imutils.grab_contours(cnts)
# get the maximum contour area
c = max(cnts, key=cv.contourArea)
# get a bbox from the contour area
(x, y, w, h) = cv.boundingRect(c)
# crop the image to the bbox coordinates
mask = mask[y:y + h, x:x + w]
lir = Rectangle(*(x, y, w, h))
return lir
Are you on Windows 11?
related: https://github.com/OpenStitching/lir/discussions/28
Could you upgrade numba and check if it solves the problem?