diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-whitening.spec | 339 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 341 insertions, 0 deletions
@@ -0,0 +1 @@ +/whitening-0.2.tar.gz diff --git a/python-whitening.spec b/python-whitening.spec new file mode 100644 index 0000000..113a53e --- /dev/null +++ b/python-whitening.spec @@ -0,0 +1,339 @@ +%global _empty_manifest_terminate_build 0 +Name: python-whitening +Version: 0.2 +Release: 1 +Summary: Document whitening (foreground separation) +License: MIT +URL: https://github.com/rossumai/whitening +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/5d/61/eb6442e547f6e429fe325955e6bd4e33b27095156eb4db4579e56fe0561c/whitening-0.2.tar.gz +BuildArch: noarch + + +%description +# Document whitening (foreground separation) + +This package tries to separate text/line foreground and background by 2D median +filter. + +<img src="data/IMG_3262.jpg" alt="original" width="250"> +<img src="data/IMG_3262_fg.jpg" alt="foreground" width="250"> +<img src="data/IMG_3262_bg.jpg" alt="background" width="250"> + +## Installation + +Install from PyPI. Works on Python 3. + +```bash +pip install whitening +``` + +## Example usage + +### Python API + +It works with images represented as `PIL.Image` or as a numpy array. Images can +be either RGB or grayscale. + +```python +import numpy as np +import PIL.Image + +from whitening import whiten + +# possible to use numpy array as input/output +image = np.asarray(PIL.Image.open('image.jpg'), dtype='uint8') +foreground, background = whiten(image, kernel_size=20, downsample=4) +PIL.Image.fromarray(foreground).save('foreground.jpg', 'jpeg') + +# or directly a PIL image +image = PIL.Image.open('image.jpg') +foreground, background = whiten(image, kernel_size=20, downsample=4) +foreground.save('foreground.jpg', 'jpeg') +``` + +### CLI + +It install an entry point called `whiten`. + +```bash +# help +$ whiten -h + +# whiten an image and save the foreground output +$ whiten input.jpg foreground.jpg + +# specify the kernel size +$ whiten input.jpg foreground.jpg -k 100 + +# work in grayscale instead of RGB (3x faster) +$ whiten input.jpg foreground.jpg -g + +# downsample the image 4x (faster, but a bit less precise) +$ whiten input.jpg foreground.jpg -d 4 + +# save also the background +$ whiten input.jpg foreground.jpg -b background.jpg +``` + +We assume the original images is a product of foreground and background, +thus we can recover the foreground by dividing the image by the background: +`I = F * B => F = I / B`. We try to approximate the background by 2D median +filtering the original image which suppresses sparse features such as text and +lines. + +Select kernel size that's enough for not making artifacts while small enough +to keep computation fast. A good starting point is 50 pixels. + +A 9.5 Mpx image can be processed on a MacBook in 15 s, with grayscale and +downsampling 4x the run time can be reduced to 1 s! Quite good results can be +obtained even with kernel size 10 and downsampling 16x. + +More info: http://bohumirzamecnik.cz/blog/2015/image-whitening/ + +## Development + +See the `Makefile` for various development tasks. + +## License + +Author: Bohumír Zámečník <bohumir.zamecnik@gmail.com> + +Supported by [Rossum](https://rossum.ai), creating a world without manual data entry. + + +%package -n python3-whitening +Summary: Document whitening (foreground separation) +Provides: python-whitening +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-whitening +# Document whitening (foreground separation) + +This package tries to separate text/line foreground and background by 2D median +filter. + +<img src="data/IMG_3262.jpg" alt="original" width="250"> +<img src="data/IMG_3262_fg.jpg" alt="foreground" width="250"> +<img src="data/IMG_3262_bg.jpg" alt="background" width="250"> + +## Installation + +Install from PyPI. Works on Python 3. + +```bash +pip install whitening +``` + +## Example usage + +### Python API + +It works with images represented as `PIL.Image` or as a numpy array. Images can +be either RGB or grayscale. + +```python +import numpy as np +import PIL.Image + +from whitening import whiten + +# possible to use numpy array as input/output +image = np.asarray(PIL.Image.open('image.jpg'), dtype='uint8') +foreground, background = whiten(image, kernel_size=20, downsample=4) +PIL.Image.fromarray(foreground).save('foreground.jpg', 'jpeg') + +# or directly a PIL image +image = PIL.Image.open('image.jpg') +foreground, background = whiten(image, kernel_size=20, downsample=4) +foreground.save('foreground.jpg', 'jpeg') +``` + +### CLI + +It install an entry point called `whiten`. + +```bash +# help +$ whiten -h + +# whiten an image and save the foreground output +$ whiten input.jpg foreground.jpg + +# specify the kernel size +$ whiten input.jpg foreground.jpg -k 100 + +# work in grayscale instead of RGB (3x faster) +$ whiten input.jpg foreground.jpg -g + +# downsample the image 4x (faster, but a bit less precise) +$ whiten input.jpg foreground.jpg -d 4 + +# save also the background +$ whiten input.jpg foreground.jpg -b background.jpg +``` + +We assume the original images is a product of foreground and background, +thus we can recover the foreground by dividing the image by the background: +`I = F * B => F = I / B`. We try to approximate the background by 2D median +filtering the original image which suppresses sparse features such as text and +lines. + +Select kernel size that's enough for not making artifacts while small enough +to keep computation fast. A good starting point is 50 pixels. + +A 9.5 Mpx image can be processed on a MacBook in 15 s, with grayscale and +downsampling 4x the run time can be reduced to 1 s! Quite good results can be +obtained even with kernel size 10 and downsampling 16x. + +More info: http://bohumirzamecnik.cz/blog/2015/image-whitening/ + +## Development + +See the `Makefile` for various development tasks. + +## License + +Author: Bohumír Zámečník <bohumir.zamecnik@gmail.com> + +Supported by [Rossum](https://rossum.ai), creating a world without manual data entry. + + +%package help +Summary: Development documents and examples for whitening +Provides: python3-whitening-doc +%description help +# Document whitening (foreground separation) + +This package tries to separate text/line foreground and background by 2D median +filter. + +<img src="data/IMG_3262.jpg" alt="original" width="250"> +<img src="data/IMG_3262_fg.jpg" alt="foreground" width="250"> +<img src="data/IMG_3262_bg.jpg" alt="background" width="250"> + +## Installation + +Install from PyPI. Works on Python 3. + +```bash +pip install whitening +``` + +## Example usage + +### Python API + +It works with images represented as `PIL.Image` or as a numpy array. Images can +be either RGB or grayscale. + +```python +import numpy as np +import PIL.Image + +from whitening import whiten + +# possible to use numpy array as input/output +image = np.asarray(PIL.Image.open('image.jpg'), dtype='uint8') +foreground, background = whiten(image, kernel_size=20, downsample=4) +PIL.Image.fromarray(foreground).save('foreground.jpg', 'jpeg') + +# or directly a PIL image +image = PIL.Image.open('image.jpg') +foreground, background = whiten(image, kernel_size=20, downsample=4) +foreground.save('foreground.jpg', 'jpeg') +``` + +### CLI + +It install an entry point called `whiten`. + +```bash +# help +$ whiten -h + +# whiten an image and save the foreground output +$ whiten input.jpg foreground.jpg + +# specify the kernel size +$ whiten input.jpg foreground.jpg -k 100 + +# work in grayscale instead of RGB (3x faster) +$ whiten input.jpg foreground.jpg -g + +# downsample the image 4x (faster, but a bit less precise) +$ whiten input.jpg foreground.jpg -d 4 + +# save also the background +$ whiten input.jpg foreground.jpg -b background.jpg +``` + +We assume the original images is a product of foreground and background, +thus we can recover the foreground by dividing the image by the background: +`I = F * B => F = I / B`. We try to approximate the background by 2D median +filtering the original image which suppresses sparse features such as text and +lines. + +Select kernel size that's enough for not making artifacts while small enough +to keep computation fast. A good starting point is 50 pixels. + +A 9.5 Mpx image can be processed on a MacBook in 15 s, with grayscale and +downsampling 4x the run time can be reduced to 1 s! Quite good results can be +obtained even with kernel size 10 and downsampling 16x. + +More info: http://bohumirzamecnik.cz/blog/2015/image-whitening/ + +## Development + +See the `Makefile` for various development tasks. + +## License + +Author: Bohumír Zámečník <bohumir.zamecnik@gmail.com> + +Supported by [Rossum](https://rossum.ai), creating a world without manual data entry. + + +%prep +%autosetup -n whitening-0.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-whitening -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2-1 +- Package Spec generated @@ -0,0 +1 @@ +66f6973deee47877a5e77abac13af305 whitening-0.2.tar.gz |
