summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-whitening.spec339
-rw-r--r--sources1
3 files changed, 341 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..ebeab4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..3398a05
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+66f6973deee47877a5e77abac13af305 whitening-0.2.tar.gz