install plantcv
Reference
Installation - PlantCV
sudo apt install python3-pip
pip install plantcv
まずpipがなかったので
sudo apt install python3-pip
しかしpython3-pipがみつからないエラー
ネットワークエラーを疑う
sudo apt update
Ignでリストが取得できない。
プロキシでネットワークエラーになっている可能性を考える。
Proxy環境内のWSL2でapt updateが失敗する #WSL2 - Qiita
まずDNSの設定を確認した。
$ cat /etc/wsl.conf
[boot]
systemd=true
[network]
generateResolvConf = false
$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
#nameserver xxx.xxx.xxx.xxx
nameserver yyy.yyy.yyy.yyy
DNSの設定をしたところ、sudo apt updateが動くようになって、sudo apt install python3-pipして、pipがインストールできたのでOK
サンプルコードを動かしたい
Updating PlantCV - PlantCV
サンプルコード中のrgb_img.pngは
docs/img/documentation_images/roi_filter にある。
plantcv/docs/img/documentation_images/roi_filter at main · danforthcenter/plantcv
git clone https://github.com/danforthcenter/plantcv.git
cd plantcv/docs/img/documentation_images/roi_filter
plantcv v3用サンプルコード
from plantcv import plantcv as pcv
pcv.params.debug = "plot"
# Read in image data
img, path, filename = pcv.readimage(filename="rgb_img.png")
# Covert to grayscale colorspace
a = pcv.rgb2gray_lab(rgb_img=img, channel='a')
# Threshold/segment plant from background
bin_mask = pcv.threshold.binary(gray_img=a, threshold=100, max_value=255, object_type="light")
# Define objects & hierarchies (needed for OpenCV)
id_objects, obj_hierarchy = pcv.find_objects(img=img, mask=bin_mask)
# Define ROI
roi_contour, roi_hierarchy = pcv.roi.rectangle(img=img, x=100, y=100, h=100, w=100)
# Filter binary image to make a clean mask based on ROI
kept_objs, kept_h, kept_mask, obj_area = pcv.roi_objects(img=img,roi_contour=roi_contour,
roi_hierarchy=roi_h,
object_contour=id_objects,
obj_hierarchy=obj_hierarchy,
roi_type="partial")
# Perform object composition (needed for OpenCV)
plant_obj, mask = pcv.object_composition(img=img,
contours=kept_objs, hierarchy=kept_h)
# Finally extract shape traits from plant
shape_img = pcv.analyze_object(img=img, obj=plant_obj, mask=mask)
# Save out data to file
pcv.outputs.save_results(filename="results.txt", outformat="json")
# In even older versions of PlantCV (pre v3.12) it would have been
# pcv.print_results(filename="results.txt")
libGLがみつからないエラー
$ python3 example_plantcv.py
Traceback (most recent call last):
File "/home/ynakagawa/plantcv/docs/img/documentation_images/roi_filter/example_plantcv.py", line 1, in <module>
from plantcv import plantcv as pcv
File "/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/__init__.py", line 2, in <module>
from plantcv.plantcv.classes import Params
File "/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/classes.py", line 3, in <module>
import cv2
File "/home/ynakagawa/.local/lib/python3.10/site-packages/cv2/__init__.py", line 181, in <module>
bootstrap()
File "/home/ynakagawa/.local/lib/python3.10/site-packages/cv2/__init__.py", line 153, in bootstrap
native_module = importlib.import_module("cv2")
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
- pip intall plantcvしたのが、v3なのかv4なのかわからないところ
サンプルコードを動かしたい2
[Python / opencv-python] ImportError: libGL.so.1: cannot open shared object file の対策 #Python - Qiita
OpenCV: Install OpenCV-Python in Ubuntusudo apt install python3-opencv
opencvバージョン確認
import cv2 as cv
print(cv.__version__)
$ python3 check_opencv_version.py
4.9.0
plantcvバージョン確認
from plantcv import plantcv as pcv
print(pcv.__version__)
$ python3 check_plantcv_version.py
4.2.1
plantcv · PyPI
pipの現行バージョンも4.2.1なので符合するサンプルコードを動かしてみたが、v3用なのでエラーっぽい。v4用を動かしてみる
$ python3 example_plantcv.py
/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/plot_image.py:30: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
plt.show()
/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/plot_image.py:40: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
plt.show()
Traceback (most recent call last):
File "/home/ynakagawa/plantcv/docs/img/documentation_images/roi_filter/example_plantcv.py", line 14, in <module>
bin_mask = pcv.threshold.binary(gray_img=a, threshold=100, max_value=255, object_type="light")
TypeError: binary() got an unexpected keyword argument 'max_value'
サンプルコードを動かしたい3
plantcv v4用のサンプルコード
from plantcv import plantcv as pcv
pcv.params.debug = "plot"
# Read in image data (no change)
img, path, filename = pcv.readimage(filename="rgb_img.png")
# Covert to grayscale colorspace (no change)
a = pcv.rgb2gray_lab(rgb_img=img, channel='a')
# Threshold/segment plant from background (removed max_value)
bin_mask = pcv.threshold.binary(gray_img=a, threshold=100, object_type="light")
# Define ROI (reduced outputs)
roi = pcv.roi.rectangle(img=img, x=100, y=100, h=100, w=100)
# Filter binary image to make a clean mask based on ROI
# (no longer needs `pcv.find_objects` or `pcv.object_composition`)
mask = pcv.roi.filter(mask=bin_img, roi=roi, roi_type="partial")
# Extract shape traits from plant
shape_img = pcv.analyze.size(img=img,labeled_mask=mask, n_labels=1)
# Save out data to file
pcv.outputs.save_results(filename="results.txt", outformat="json")
rgb_img.pngと同じカレントパスで実行した。
$ python3 example_plantcv-1.py
/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/plot_image.py:30: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
plt.show()
/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/plot_image.py:40: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
plt.show()
/home/ynakagawa/.local/lib/python3.10/site-packages/plantcv/plantcv/plot_image.py:35: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown
plt.show()
Traceback (most recent call last):
File "/home/ynakagawa/plantcv/docs/img/documentation_images/roi_filter/example_plantcv-1.py", line 18, in <module>
mask = pcv.roi.filter(mask=bin_img, roi=roi, roi_type="partial")
NameError: name 'bin_img' is not defined
サンプルコードを動かしたい4
matplotlibはインストール済みだった。
windows shell linuxのubuntu 22.04.3だから、windowが開かないのか?
$ pip install matplotlib
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: matplotlib in /home/ynakagawa/.local/lib/python3.10/site-packages (3.8.3)
Requirement already satisfied: pillow>=8 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (10.2.0)
Requirement already satisfied: packaging>=20.0 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (23.2)
equirement already satisfied: pyparsing>=2.3.1 in /usr/lib/python3/dist-packages (from matplotlib) (2.4.7)
Requirement already satisfied: kiwisolver>=1.3.1 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (1.4.5)
Requirement already satisfied: cycler>=0.10 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (4.49.0)
Requirement already satisfied: contourpy>=1.0.1 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (1.2.0)
Requirement already satisfied: python-dateutil>=2.7 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (2.8.2)
Requirement already satisfied: numpy<2,>=1.21 in /home/ynakagawa/.local/lib/python3.10/site-packages (from matplotlib) (1.26.4)
Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
FigureCanvasAgg interactivity problem - Community - Matplotlib
pip install PyQt5
$ python3 example_plantcv-1.py
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/ynakagawa/.local/lib/python3.10/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
Aborted
aptでもPyQt5をインストールしたらエラーが増えた
ubuntuにpyqt5をインストールする #PyQt5 - Qiita
sudo apt install python3-pyqt5
$ python3 example_plantcv-1.py
QObject::moveToThread: Current thread (0x564185410440) is not the object's thread (0x564184c15fb0).
Cannot move to target thread (0x564185410440)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/ynakagawa/.local/lib/python3.10/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
Aborted
removeしとく
sudo apt purge python3-pyqt5
あんまり変わってない
$ python3 example_plantcv-1.py
QObject::moveToThread: Current thread (0x56446d9233c0) is not the object's thread (0x56446ef5abb0).
Cannot move to target thread (0x56446d9233c0)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/ynakagawa/.local/lib/python3.10/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
Aborted
Ubuntu 20.04でも同じエラー
chino@chino-Legion-5-15IAH7H:~/Works/plantcv/docs/img/documentation_images/roi_filter$ python3 example_platcv-1.py
QObject::moveToThread: Current thread (0x1d75e00) is not the object's thread (0x1c95ec0).
Cannot move to target thread (0x1d75e00)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/chino/.local/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
Aborted (core dumped)
Ubuntuでpython3でpyqt5を実行したいのにエラーがでる | メディカルフィールズ社員ブログ
pip3 install –user pyqt5
sudo apt-get install python3-pyqt5
sudo apt-get install pyqt5-dev-tools
sudo apt-get install qttools5-dev-tools
してみたが同じエラー
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
というエラーが起きたときの対処 #Qt - Qiita
chino@chino-Legion-5-15IAH7H:~/Works/plantcv/docs/img/documentation_images/roi_filter$ find /usr | grep "qxcb"
/usr/local/MATLAB/R2023a/bin/glnxa64/platforms/libqxcb.so
/usr/local/MATLAB/R2023a/bin/glnxa64/xcbglintegrations/libqxcb-glx-integration.so
/usr/include/x86_64-linux-gnu/qt5/QtPlatformHeaders/qxcbwindowfunctions.h
/usr/include/x86_64-linux-gnu/qt5/QtPlatformHeaders/qxcbscreenfunctions.h
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
/usr/lib/x86_64-linux-gnu/qt5/plugins/xcbglintegrations/libqxcb-egl-integration.so
/usr/lib/x86_64-linux-gnu/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so
/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so っぽい?
chino@chino-Legion-5-15IAH7H:~/Works/plantcv/docs/img/documentation_images/roi_filter$ ldd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
linux-vdso.so.1 (0x00007ffe1df9a000)
libQt5XcbQpa.so.5 => /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 (0x00007f005994a000)
libQt5Gui.so.5 => /lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f005935f000)
libQt5Core.so.5 => /lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f0058e16000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f0058c34000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0058a42000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f00589fb000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f005893a000)
libQt5DBus.so.5 => /lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007f005889e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f005887b000)
libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f0058876000)
libxcb-xinput.so.0 => /lib/x86_64-linux-gnu/libxcb-xinput.so.0 (0x00007f0058852000)
libxcb-icccm.so.4 => /lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f005884b000)
libxcb-image.so.0 => /lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f0058644000)
libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f005863f000)
libxcb-keysyms.so.1 => /lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f005863a000)
libxcb-randr.so.0 => /lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007f0058627000)
libxcb-render-util.so.0 => /lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f0058620000)
libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f0058611000)
libxcb-shape.so.0 => /lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007f005860a000)
libxcb-sync.so.1 => /lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f0058600000)
libxcb-xfixes.so.0 => /lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f00585f6000)
libxcb-xinerama.so.0 => /lib/x86_64-linux-gnu/libxcb-xinerama.so.0 (0x00007f00585f1000)
libxcb-xkb.so.1 => /lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007f00585d3000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f00585a9000)
libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f005839d000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f0058260000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f0058111000)
libSM.so.6 => /lib/x86_64-linux-gnu/libSM.so.6 (0x00007f0058106000)
libICE.so.6 => /lib/x86_64-linux-gnu/libICE.so.6 (0x00007f00580e8000)
libxkbcommon-x11.so.0 => /lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007f00580dd000)
libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f0058099000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f0057f6f000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f0057f54000)
libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007f0057ecc000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f0057e94000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f0057e76000)
libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f0057d72000)
libicui18n.so.66 => /lib/x86_64-linux-gnu/libicui18n.so.66 (0x00007f0057a73000)
libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f005788d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0057887000)
libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f0057803000)
libdouble-conversion.so.3 => /lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007f00577eb000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0059b1a000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f00577bd000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f00577b4000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f0057763000)
libxcb-util.so.1 => /lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007f005755d000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f0057555000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f005754d000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f0057533000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f00574c0000)
libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f0057408000)
libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f00573d2000)
libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f00573a5000)
libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f00558e4000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f0055835000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f005582b000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f0055800000)
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f00557df000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f00556c1000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f005569e000)
とくに not foundはない。
QT_DEBUG_PLUGINS=1を付けてみる
$ QT_DEBUG_PLUGINS=1 python3 example_platcv-1.py
QFactoryLoader::QFactoryLoader() checking directory path "/home/chino/.local/lib/python3.8/site-packages/cv2/qt/plugins" ...
QFactoryLoader::QFactoryLoader() checking directory path "/home/chino/.local/lib/python3.8/site-packages/PyQt5/Qt5/plugins" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/bin/2to3-2.7"
QElfParser: '/usr/bin/2to3-2.7' is not an ELF object
"'/usr/bin/2to3-2.7' is not an ELF object"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "/usr/bin/411toppm"
"Failed to extract plugin meta data from '/usr/bin/411toppm'"
not a plugin
QFactoryLoader::QFactoryLoader() looking at "/usr/bin/["
"Failed to extract plugin meta data from '/usr/bin/['"
not a plugin
......
......
"archreq": 0,
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
loaded library "/home/chino/.local/lib/python3.8/site-packages/cv2/qt/plugins/platforms/libqxcb.so"
QObject::moveToThread: Current thread (0x4164240) is not the object's thread (0x44779a0).
Cannot move to target thread (0x4164240)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/chino/.local/lib/python3.8/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
Aborted (core dumped)
めちゃくちゃ長い
詳細
test install plantcv
とくにnot foundがなさそう
$ ldd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so | grep "not found"
$
$ ldd /home/chino/.local/lib/python3.8/site-packages/cv2/qt/plugins/platforms/libqxcb.so | grep "not found"
$
別の方法を探す
QtとOpenCVの両方をインストールするとエラーが発生する[Python] | n++
ubuntu18.04環境で、pyqt5を使いつつopencv-pythonをインストールすると、その後にqtを使用する際にエラーが発生した。 #PyQt5 - Qiita OpenCV使用時にQt platform plugin "xcb"エラーで動画が出ない場合 #OpenCV - Qiitapip uninstall -y opencv-python
pip install opencv-python-headless
動いたー、もう一歩
$ python3 example_platcv-1.py
Traceback (most recent call last):
File "example_platcv-1.py", line 18, in <module>
mask = pcv.roi.filter(mask=bin_img, roi=roi, roi_type="partial")
NameError: name 'bin_img' is not defined
bin_imgはbin_maskなのでは?
results.txtできたー。最後まで動いたー。
$ python3 example_platcv-1.py
$ ls
bin_img.png example_platcv-1.py mask_cutto.png mask_partial.png results.txt rgb_img.png roi_img.png
plantcv v4用 サンプルプログラム
from plantcv import plantcv as pcv
pcv.params.debug = "plot"
# Read in image data (no change)
img, path, filename = pcv.readimage(filename="rgb_img.png")
# Covert to grayscale colorspace (no change)
a = pcv.rgb2gray_lab(rgb_img=img, channel='a')
# Threshold/segment plant from background (removed max_value)
bin_mask = pcv.threshold.binary(gray_img=a, threshold=100, object_type="light")
# Define ROI (reduced outputs)
roi = pcv.roi.rectangle(img=img, x=100, y=100, h=100, w=100)
# Filter binary image to make a clean mask based on ROI
# (no longer needs `pcv.find_objects` or `pcv.object_composition`)
#mask = pcv.roi.filter(mask=bin_img, roi=roi, roi_type="partial")
mask = pcv.roi.filter(mask=bin_mask, roi=roi, roi_type="partial")
# Extract shape traits from plant
shape_img = pcv.analyze.size(img=img,labeled_mask=mask, n_labels=1)
# Save out data to file
pcv.outputs.save_results(filename="results.txt", outformat="json")
動作中のwindow