PlantCV更新

PyPI

通過(guò)終端升級(jí)PlantCV:

pip install --upgrade

Conda

通過(guò)終端升級(jí)PlantCV:

conda upgrade -n plantcv plantcv

如果conda無(wú)法更新PlantCV岂膳,請(qǐng)嘗試安裝特定版本。例如,如果你的版本是v3.6.1顾翼,而你想要安裝v3.6.2,你可以使用以下代碼:

conda install -n plantcv plantcv=3.6.2

你可以通過(guò)bioconda查看最新的可用版本:

conda list plantcv

手動(dòng)安裝

如果你使用的是danforthcenter/plantcv代碼庫(kù)克隆的master 分支宏赘,常規(guī)升級(jí)步驟是更新本地庫(kù)并重新安裝包绒北。

如果不確定是否從danforthcenter/plantcv代碼庫(kù)克隆的master 分支,可以嘗試以下代碼:

cd plantcv

git remote -v

# 你會(huì)看到如下內(nèi)容:
# origin    https://github.com/danforthcenter/plantcv.git (fetch)

git status

# 你會(huì)看到如下內(nèi)容:
# On branch master
# nothing to commit, working directory clean

如果以上內(nèi)容正確顯示察署,就可以通過(guò)下面的操作更新:

git pull

python setup.py install

# 如果需要權(quán)限請(qǐng)加sudo

如果你應(yīng)將克隆后的plantcv庫(kù)文件夾添加到你的PYTHONPATH那么只需要拉取操作就可以升級(jí)闷游。具體依賴項(xiàng)詳見(jiàn)以下安裝說(shuō)明。當(dāng)使用PlantCV克隆時(shí)(而不是conda環(huán)境)贴汪,更新可能需要在克隆完成后手動(dòng)添加依賴項(xiàng)脐往。

從 v1 版升級(jí)到 v2 版

安裝工具方法在PlantCV v1中并不適用,所以用戶需要將plantcv/lib路徑添加到自定義的PYTHONPATH扳埂。在PlantCV v2中业簿,plantcv library路徑在lib中已經(jīng)不存在,而是在庫(kù)的main文件夾 (plantcv/plantcv)阳懂。如果你想要繼續(xù)將plantcv添加到PYTHONPATH辖源,你需要將‘lib’從路徑中移除來(lái)進(jìn)行更新。也可以在拉取新版本后移除lib文件夾克饶。Git會(huì)自動(dòng)移除 *.py ,但由于并不查詢誊辉,*.pyc文件依舊會(huì)保留并且可以導(dǎo)入矾湃,會(huì)引起混亂。

針對(duì) Linux/Unix堕澄, PYTHONPATH 可以編輯為 ~/.bash_profile, ~/.bashrc, ~/.profile, ~/.cshrc, ~/.zshrc, 等邀跃。

針對(duì) Windows, 右鍵我的電腦或者此電腦,選擇屬性>高級(jí)系統(tǒng)設(shè)置>環(huán)境變量蛙紫,編輯用戶變量添加 PYTHONPATH拍屑。

同時(shí)要注意PlantCV并行方法也發(fā)生了改變,請(qǐng)查閱最新的 并行處理文檔

升級(jí)到 v3版

PlantCV v3新增功能的主要目標(biāo)是使PlantCV更容易使用坑傅。我們希望您接受以下變更僵驰,如果您有任何疑問(wèn)或者顧慮請(qǐng)隨時(shí)在GitHub開(kāi)一個(gè)討論話題或者直接聯(lián)系我們。

為了支持可選安裝附屬包唁毒,我們將PlantCV轉(zhuǎn)換為 namespace package蒜茴。為了實(shí)現(xiàn)新功能,已有函數(shù)已經(jīng)移動(dòng)到附屬包中來(lái)保持導(dǎo)入浆西。為了維持之前的操作粉私,PlantCV 分析腳本只需要修改一下PlantCV導(dǎo)入句式。所以如果你之前操作如下:

import plantcv as pcv

那么之后的操作:

from plantcv import plantcv as pcv

PlantCV v3另外一個(gè)推出的功能是升級(jí)現(xiàn)有包的API近零。這是為了通過(guò)減少導(dǎo)入導(dǎo)出需要的設(shè)置(在不減少功能的情況下)诺核,讓導(dǎo)入?yún)?shù)命名更加一致并且明確定義輸入輸出類型(例如抄肖,不再使用img,而對(duì)RGB窖杀、灰度或黑白圖像分別使用 rgb_img, gray_img, 或 bin_img)漓摩,讓每個(gè)PlantCV函數(shù)更佳容易使用。

在PlantCV v3.0dev2以后的版本中陈瘦,所有的函數(shù)已經(jīng)重新設(shè)計(jì)可以利用全局變量等級(jí)來(lái)承接標(biāo)準(zhǔn)導(dǎo)入數(shù)值例如 debugdevice幌甘,從而這些值不需要再額外從其他函數(shù)導(dǎo)入導(dǎo)出。一個(gè)案例class Params 痊项,由于params在PlantCV導(dǎo)入后已經(jīng)自動(dòng)生成锅风,可以導(dǎo)入來(lái)設(shè)置全局默認(rèn)值。例如鞍泉,如果需要改變debug從None到'plot' 或 'print'皱埠,你現(xiàn)在只需要在代碼或notebook最上方增加一行來(lái)改變所有下方函數(shù)的調(diào)用:

from plantcv import plantcv as pcv
pcv.params.debug = "plot"

因此,所有函數(shù)調(diào)用需要更新來(lái)移除 device輸入和輸出變量以及debug輸入變量咖驮。例如:

from plantcv import plantcv as pcv
pcv.params.debug = "plot"

img, img_path, img_filename = pcv.readimage("image.png")

gray_img = pcv.rgb2gray_hsv(img, "s")

bin_img = pcv.threshold.binary(gray_img, 100, 255)

更多信息詳見(jiàn) Params 文檔边器。

以下是所有從v3.0dev2之前版本到v3.0dev2之后版本函數(shù)調(diào)用的變更,以及v3.0發(fā)行版的升級(jí)托修⊥桑可以通過(guò)查看每個(gè)函數(shù)的幫助葉面來(lái)獲取更多輸入輸出變量類型信息。

plantcv.acute

  • v3.0dev2之前: device, homolog_pts, start_pts, stop_pts, ptvals, chain, max_dist = plantcv.acute(obj, win, thresh, mask, device, debug=None)
  • v3.0dev2之后: homolog_pts, start_pts, stop_pts, ptvals, chain, max_dist = plantcv.acute(obj, win, thresh, mask)
  • v3.2之后: homolog_pts, start_pts, stop_pts, ptvals, chain, max_dist = plantcv.acute(obj, mask, win, thresh)

plantcv.acute_vertex

  • v3.0dev2之前: device, acute = plantcv.acute_vertex(obj, win, thresh, sep, img, device, debug=None)
  • v3.0dev2之后: acute = plantcv.acute_vertex(obj, win, thresh, sep, img)
  • v3.2之后: acute, analysis_image = plantcv.acute_vertex(img, obj, win, thresh, sep)

plantcv.adaptive_threshold

  • v3.0dev2之前: device, bin_img = plantcv.adaptive_threshold(img, maxValue, thres_type, object_type, device, debug=None)
  • v3.0dev2之后: Deprecated, see:
    • bin_img = plantcv.threshold.gaussian(gray_img, max_value, object_type="light")
    • bin_img = plantcv.threshold.mean(gray_img, max_value, object_type="light")

plantcv.analyze_bound

  • v3.0dev2之前: device, bound_header, bound_data, analysis_images = plantcv.analyze_bound(img, imgname, obj, mask, line_position, device, debug=None, filename=False)
  • v3.0dev2之后: Deprecated, see:
    • analysis_images = plantcv.analyze_bound_horizontal(img, obj, mask, line_position, filename=False)

plantcv.analyze_bound_horizontal

  • v3.0dev2之前: device, bound_header, bound_data, analysis_images = plantcv.analyze_bound_horizontal(img, obj, mask, line_position, device, debug=None, filename=False)
  • v3.0dev2之后: bound_header, bound_data, analysis_images = plantcv.analyze_bound_horizontal(img, obj, mask, line_position, filename=False)
  • v3.0之后: bound_header, bound_data, analysis_images = plantcv.analyze_bound_horizontal(img, obj, mask, line_position)
  • v3.3之后: analysis_image = plantcv.analyze_bound_horizontal(img, obj, mask, line_position)

plantcv.analyze_bound_vertical

  • v3.0dev2之前: device, bound_header, bound_data, analysis_images = plantcv.analyze_bound_vertical(img, obj, mask, line_position, device, debug=None, filename=False)
  • v3.0dev2之后: bound_header, bound_data, analysis_images = plantcv.analyze_bound_vertical(img, obj, mask, line_position, filename=False)
  • v3.0.5之后: bound_header, bound_data, analysis_images = plantcv.analyze_bound_vertical(img, obj, mask, line_position)
  • v3.3之后: analysis_image = plantcv.analyze_bound_vertical(img, obj, mask, line_position)

plantcv.analyze_color

  • v3.0dev2之前: device, hist_header, hist_data, analysis_images = plantcv.analyze_color(img, imgname, mask, bins, device, debug=None, hist_plot_type=None, pseudo_channel='v', pseudo_bkg='img', resolution=300, filename=False)
  • v3.0dev2之后: hist_header, hist_data, analysis_images = plantcv.analyze_color(rgb_img, mask, bins, hist_plot_type=None, pseudo_channel='v', pseudo_bkg='img', filename=False)
  • v3.0之后: hist_header, hist_data, analysis_images = plantcv.analyze_color(rgb_img, mask, bins, hist_plot_type=None)
  • v3.3之后: analysis_image = plantcv.analyze_color(rgb_img, mask, hist_plot_type=None)

plantcv.analyze_nir_intensity

  • v3.0dev2之前: device, hist_header, hist_data, analysis_img = plantcv.analyze_NIR_intensity(img, rgbimg, mask, bins, device, histplot=False, debug=None, filename=False)
  • v3.0dev2之后: hist_header, hist_data, analysis_img = plantcv.analyze_nir_intensity(gray_img, mask, bins, histplot=False, filename=False)
  • v3.0之后: hist_header, hist_data, nir_hist = plantcv.analyze_nir_intensity(gray_img, mask, bins, histplot=False)
  • v3.3之后: nir_hist = plantcv.analyze_nir_intensity(gray_img, mask, bins, histplot=False)

plantcv.analyze_object

  • v3.0dev2之前: device, shape_header, shape_data, analysis_images = plantcv.analyze_object(img, imgname, obj, mask, device, debug=None, filename=False)
  • v3.0dev2之后: shape_header, shape_data, analysis_images = plantcv.analyze_object(img, obj, mask, filename=False)
  • v3.0之后: shape_header, shape_data, analysis_images = plantcv.analyze_object(img, obj, mask)
  • v3.3之后: analysis_image = plantcv.analyze_object(img, obj, mask)

plantcv.analyze_thermal_values

  • v3.5之前: NA
  • v3.5之后: thermal_histogram = plantcv.analyze_thermal_values(thermal_array, mask, histplot=False)

plantcv.apply_mask

  • v3.0dev2之前: device, masked_img = plantcv.apply_mask(img, mask, mask_color, device, debug=None)
  • v3.0dev2之后: masked_img = plantcv.apply_mask(rgb_img, mask, mask_color)
  • v3.7之后: masked_img = plantcv.apply_mask(img, mask, mask_color)

plantcv.auto_crop

  • v3.0dev2之前: device, cropped = plantcv.auto_crop(device, img, objects, padding_x=0, padding_y=0, color='black', debug=None)
  • v3.0dev2之后: cropped = plantcv.auto_crop(img, objects, padding_x=0, padding_y=0, color='black')
  • v3.2之后: cropped = plantcv.auto_crop(img, obj, padding_x=0, padding_y=0, color='black')

plantcv.background_subtraction

  • v3.0dev2之前: device, fgmask = plantcv.background_subtraction(background_image, foreground_image, device, debug=None)
  • v3.0dev2之后: fgmask = plantcv.background_subtraction(background_image, foreground_image)

plantcv.binary_threshold

  • v3.0dev2之前: device, bin_img = plantcv.binary_threshold(img, threshold, maxValue, object_type, device, debug=None)
  • v3.0dev2之后: Deprecated, see:
    • bin_img = plantcv.threshold.binary(gray_img, threshold, max_value, object_type="light")

plantcv.canny_edge_detect

  • v3.2之前: NA
  • v3.2之后: bin_img = plantcv.canny_edge_detect(img, mask=None, sigma=1.0, low_thresh=None, high_thresh=None, thickness=1, mask_color=None, use_quantiles=False)

plantcv.closing

  • v3.3之前: NA
  • v3.3之后: filtered_img = plantcv.closing(gray_img, kernel=None)

plantcv.cluster_contour_splitimg

  • v3.0dev2之前: device, output_path = plantcv.cluster_contour_splitimg(device, img, grouped_contour_indexes, contours, hierarchy, outdir=None, file=None, filenames=None, debug=None)
  • v3.0dev2之后: output_path = plantcv.cluster_contour_splitimg(rgb_img, grouped_contour_indexes, contours, hierarchy, outdir=None, file=None, filenames=None)
  • v3.3之后: output_path, output_imgs, output_masks = plantcv.cluster_contour_splitimg(rgb_img, grouped_contour_indexes, contours, hierarchy, outdir=None, file=None, filenames=None)

plantcv.cluster_contours

  • v3.0dev2之前: device, grouped_contour_indexes, contours, roi_obj_hierarchy = plantcv.cluster_contours(device, img, roi_objects,roi_obj_hierarchy, nrow=1, ncol=1, debug=None)
  • v3.0dev2之后: grouped_contour_indexes, contours, roi_obj_hierarchy = plantcv.cluster_contours(img, roi_objects, roi_obj_hierarchy, nrow=1, ncol=1)
  • v3.2之后: grouped_contour_indexes, contours, roi_obj_hierarchy = plantcv.cluster_contours(img, roi_objects, roi_object_hierarchy, nrow=1, ncol=1, show_grid=False)

plantcv.color_palette

  • v3.0之前: NA
  • v3.0之后: colors = plantcv.color_palette(num)

plantcv.crop_position_mask

  • v3.0dev2之前: device, newmask = plantcv.crop_position_mask(img, mask, device, x, y, v_pos="top", h_pos="right", debug=None)
  • v3.0dev2之后: newmask = plantcv.crop_position_mask(img, mask, x, y, v_pos="top", h_pos="right")

plantcv.define_roi

  • v3.0dev2之前: device, contour, hierarchy = plantcv.define_roi(img, shape, device, roi=None, roi_input='default', debug=None, adjust=False, x_adj=0, y_adj=0, w_adj=0, h_adj=0)
  • v3.0dev2之后: Deprecated, see:
    • roi_contour, roi_hierarchy = plantcv.roi.circle(img, x, y, r)
    • roi_contour, roi_hierarchy = plantcv.roi.ellipse(img, x, y, r1, r2, angle)
    • roi_contour, roi_hierarchy = plantcv.roi.from_binary_image(img, bin_img)
    • roi_contour, roi_hierarchy = plantcv.roi.rectangle(img, x, y, h, w)

plantcv.dilate

  • v3.0dev2之前: device, dil_img = plantcv.dilate(img, kernel, i, device, debug=None)
  • v3.0dev2之后: dil_img = plantcv.dilate(gray_img, kernel, i)
  • v3.2之后: dil_img = plantcv.dilate(gray_img, ksize, i)

plantcv.distance_transform

  • v3.0dev2之前: device, norm_image = plantcv.distance_transform(img, distanceType, maskSize, device, debug=None)
  • v3.0dev2之后: norm_image = plantcv.distance_transform(bin_img, distance_type, mask_size)

plantcv.erode

  • v3.0dev2之前: device, er_img = plantcv.erode(img, kernel, i, device, debug=None)
  • v3.0dev2之后: er_img = plantcv.erode(gray_img, kernel, i)
  • v3.2之后: er_img = plantcv.erode(gray_img, ksize, i)

plantcv.fill

  • v3.0dev2之前: device, filtered_img = plantcv.fill(img, mask, size, device, debug=None)
  • v3.0dev2之后: filtered_img = plantcv.fill(bin_img, size)

plantcv.fill_holes

  • v3.3之前: NA
  • v3.3之后: filtered_img = plantcv.fill(bin_img)

plantcv.find_objects

  • v3.0dev2之前: device, objects, hierarchy = plantcv.find_objects(img, mask, device, debug=None)
  • v3.0dev2之后: objects, hierarchy = plantcv.find_objects(img, mask)

plantcv.flip

  • v3.0dev2之前: device, vh_img = plantcv.flip(img, direction, device, debug=None)
  • v3.0dev2之后: vh_img = plantcv.flip(img, direction)

plantcv.fluor_fvfm

  • v3.0dev2之前: device, hist_header, hist_data = plantcv.fluor_fvfm(fdark, fmin, fmax, mask, device, filename, bins=1000, debug=None)
  • v3.0dev2之后: hist_header, hist_data, hist_images = plantcv.fluor_fvfm(fdark, fmin, fmax, mask, filename, bins=256)
  • v3.0之后: hist_header, hist_data, analysis_images = plantcv.fluor_fvfm(fdark, fmin, fmax, mask, bins=256)
  • v3.3之后: analysis_images = plantcv.fluor_fvfm(fdark, fmin, fmax, mask, bins=256)

plantcv.gaussian_blur

  • v3.0dev2之前: device, img_gblur = plantcv.gaussian_blur(device, img, ksize, sigmax=0, sigmay=None, debug=None)
  • v3.0dev2之后: img_gblur = plantcv.gaussian_blur(img, ksize, sigmax=0, sigmay=None)
  • v3.2之后: img_gblur = plantcv.gaussian_blur(img, ksize, sigma_x=0, sigma_y=None)

plantcv.get_nir

  • v3.0dev2之前: device, nirpath = plantcv.get_nir(path, filename, device, debug=None)
  • v3.0dev2之后: nirpath = plantcv.get_nir(path, filename)

plantcv.hist_equalization

  • v3.0dev2之前: device, img_eh = plantcv.hist_equalization(img, device, debug=None)
  • v3.0dev2之后: img_eh = plantcv.hist_equalization(gray_img)

plantcv.hyperspectral.analyze_index

  • v3.7之前: NA
  • v3.7之后: plantcv.hyperspectral.analyze_index(index_array, mask)
  • v3.8之后: index_histogram = plantcv.hyperspectral.analyze_index(index_array, mask, histplot=False, bins=100, max_bin=0, min_bin=1)

plantcv.hyperspectral.analyze_spectral

  • v3.7之前: NA
  • v3.7之后: spectral_histogram = plantcv.hyperspectral.analyze_spectral(array, mask, histplot=True)

plantcv.hyperspectral.extract_index

  • v3.7之前: NA
  • v3.7之后: index_array = plantcv.hyperspectral.extract_index(array, index="NDVI", distance=20)
  • v3.8之后: DEPRECATED see plantcv.spectral_index

plantcv.image_add

  • v3.0dev2之前: device, added_img = plantcv.image_add(img1, img2, device, debug=None)
  • v3.0dev2之后: added_img = plantcv.image_add(gray_img1, gray_img2)

plantcv.image_subtract

  • v3.0之前: NA
  • v3.0之后: new_img = plantcv.image_subtract(gray_img1, gray_img2)

plantcv.invert

  • v3.0dev2之前: device, img_inv = plantcv.invert(img, device, debug=None)
  • v3.0dev2之后: img_inv = plantcv.invert(gray_img)

plantcv.landmark_reference_pt_dist

  • v3.0dev2之前: device, vert_ave_c, hori_ave_c, euc_ave_c, ang_ave_c, vert_ave_b, hori_ave_b, euc_ave_b, ang_ave_b = plantcv.landmark_reference_pt_dist(points_r, centroid_r, bline_r, device, debug=None)
  • v3.0dev2之后: vert_ave_c, hori_ave_c, euc_ave_c, ang_ave_c, vert_ave_b, hori_ave_b, euc_ave_b, ang_ave_b = plantcv.landmark_reference_pt_dist(points_r, centroid_r, bline_r)
  • v3.2之后: landmark_header, landmark_data = plantcv.landmark_reference_pt_dist(points_r, centroid_r, bline_r)
  • v3.3之后: plantcv.landmark_reference_pt_dist(points_r, centroid_r, bline_r)

plantcv.laplace_filter

  • v3.0dev2之前: device, lp_filtered = plantcv.laplace_filter(img, k, scale, device, debug=None)
  • v3.0dev2之后: lp_filtered = plantcv.laplace_filter(gray_img, k, scale)
  • v3.2之后: lp_filtered = plantcv.laplace_filter(gray_img, ksize, scale)

plantcv.logical_and

  • v3.0dev2之前: device, merged = plantcv.logical_and(img1, img2, device, debug=None)
  • v3.0dev2之后: merged = plantcv.logical_and(bin_img1, bin_img2)

plantcv.logical_or

  • v3.0dev2之前: device, merged = plantcv.logical_or(img1, img2, device, debug=None)
  • v3.0dev2之后: merged = plantcv.logical_or(bin_img1, bin_img2)

plantcv.logical_xor

  • v3.0dev2之前: device, merged = plantcv.logical_xor(img1, img2, device, debug=None)
  • v3.0dev2之后: merged = plantcv.logical_xor(bin_img1, bin_img2)

plantcv.median_blur

  • v3.0dev2之前: device, img_mblur = plantcv.median_blur(img, ksize, device, debug=None)
  • v3.0dev2之后: img_mblur = plantcv.median_blur(gray_img, ksize)
  • v3.2之后: img_blur = plantcv.median_blur(gray_img, ksize) OR img_blur = plantcv.median_blur(gray_img, (ksize1, ksize2))

plantcv.morphology.check_cycles

  • v3.3之前: NA
  • v3.3之后: cycle_img = plantcv.morphology.check_cycles(skel_img)

plantcv.morphology.find_branch_pts

  • v3.3之前: NA
  • v3.3之后: branch_pts_img = plantcv.morphology.find_branch_pts(skel_img, mask=None)

plantcv.morphology.find_tips

  • v3.3之前: NA
  • v3.3之后: tip_img = plantcv.morphology.find_tips(skel_img, mask=None)

plantcv.morphology.prune

  • v3.3之前: NA
  • v3.3之后: pruned_img = plantcv.morphology.prune(skel_img, size)
  • v3.4之后: pruned_skeleton, segmented_img, segment_objects = plantcv.morphology.prune(skel_img, size=0, mask=None)

plantcv.morphology.segment_angle

  • v3.3之前: NA
  • v3.3之后: labeled_img = plantcv.morphology.segment_angle(segmented_img, objects)

plantcv.morphology.curvature

  • v3.3之前: NA
  • v3.3之后: labeled_img = plantcv.morphology.segment_curvature(segmented_img, objects)

plantcv.morphology.segment_euclidean_length

  • v3.3之前: NA
  • v3.3之后: labeled_img = plantcv.morphology.segment_euclidean_length(segmented_img, objects)

plantcv.morphology.segment_id

  • v3.3之前: NA
  • v3.3之后: segmented_img, labeled_img = plantcv.morphology.segment_id(skel_img, objects, mask=None)

plantcv.morphology.segment_path_length

  • v3.3之前: NA
  • v3.3之后: labeled_img = plantcv.morphology.segment_path_length(segmented_img, objects)

plantcv.morphology.segment_skeleton

  • v3.3之前: NA
  • v3.3之后: segmented_img, segment_objects = plantcv.morphology.segment_skeleton(skel_img, mask=None)

plantcv.morphology.segment_sort

  • v3.3之前: NA
  • v3.3之后: secondary_objects, primary_objects = plantcv.morphology.segment_sort(skel_img, objects, mask=None)

plantcv.morphology.segment_tangent_angle

  • v3.3之前: NA
  • v3.3之后: labeled_img = plantcv.morphology.segment_tangent_angle(segmented_img, objects, size)

plantcv.morphology.skeletontize

  • v3.3之前: NA
  • v3.3之后: skeleton = plantcv.morphology.skeletonize(mask)

plantcv.naive_bayes_classifier

  • v3.0dev2之前: device, masks = plantcv.naive_bayes_classifier(img, pdf_file, device, debug=None)**
  • v3.0dev2之后: masks = plantcv.naive_bayes_classifier(rgb_img, pdf_file)**

plantcv.object_composition

  • v3.0dev2之前: device, group, mask = plantcv.object_composition(img, contours, hierarchy, device, debug=None)
  • v3.0dev2之后: group, mask = plantcv.object_composition(img, contours, hierarchy)

plantcv.opening

  • v3.3之前: NA
  • v3.3之后: filtered_img = plantcv.opening(gray_img, kernel=None)

plantcv.otsu_auto_threshold

  • v3.0dev2之前: device, bin_img = plantcv.otsu_auto_threshold(img, maxValue, object_type, device, debug=None)
  • v3.0dev2之后: Deprecated, see:
    • bin_img = plantcv.threshold.otsu(gray_img, max_value, object_type="light")

plantcv.output_mask

  • v3.0dev2之前: device, maskpath, analysis_images = plantcv.output_mask(device, img, mask, filename, outdir=None, mask_only=False, debug=None)
  • v3.0dev2之后: imgpath, maskpath, analysis_images = plantcv.output_mask(img, mask, filename, outdir=None, mask_only=False)

plantcv.plot_hist

  • v3.0dev2之前: bins, hist = plantcv.plot_hist(img, name=False)
  • v3.0dev2之后: bins, hist = plantcv.plot_hist(img, name=False)
  • v3.2之后: Deprecated, see:
    • hist_header, hist_data, fig_hist = plantcv.visualize.histogram(gray_img, mask=None, bins=256)

plantcv.plot_image

  • v3.0dev2之前: plantcv.plot_image(img, cmap=None)
  • v3.0dev2之后: plantcv.plot_image(img, cmap=None)

plantcv.print_image

  • v3.0dev2之前: plantcv.print_image(img, filename)
  • v3.0dev2之后: plantcv.print_image(img, filename)

plantcv.print_results

  • v3.1之前: NA
  • v3.1之后: plantcv.print_results(filename)

plantcv.pseudocolor

  • v3.1之前: NA
  • v3.1之后: pseudo_img = plantcv.pseudocolor(gray_img, obj=None, mask=None, cmap=None, background="image", min_value=0, max_value=255, dpi=None, axes=True, colorbar=True)
  • v3.2之后: Deprecated, see:
    • pseudo_img = plantcv.visualize.pseudocolor(gray_img, obj=None, mask=None, cmap=None, background="image", min_value=0, max_value=255, axes=True, colorbar=True)

plantcv.readbayer

  • v3.0之前: NA
  • v3.0之后: img, path, img_name = plantcv.readbayer(filename, bayerpattern = 'BG', alg = 'default')

plantcv.readimage

  • v3.0dev2之前: img, path, img_name = plantcv.readimage(filename, debug=None)
  • v3.0dev2之后: img, path, img_name = plantcv.readimage(filename, mode="native")

plantcv.rectangle_mask

  • v3.0dev2之前: device, img1, bnk, contour, hierarchy = plantcv.rectangle_mask(img, p1, p2, device, debug=None, color="black")
  • v3.0dev2之后: img1, bnk, contour, hierarchy = plantcv.rectangle_mask(img, p1, p2, color="black")

plantcv.report_size_marker_area

  • v3.0dev2之前: device, marker_header, marker_data, analysis_images = plantcv.report_size_marker_area(img, shape, device, debug, marker='define', x_adj=0, y_adj=0, w_adj=0, h_adj=0, base='white', objcolor='dark', thresh_channel=None, thresh=None, filename=False)
  • v3.0dev2之后: marker_header, marker_data, analysis_images = plantcv.report_size_marker_area(img, roi_contour, roi_hierarchy, marker='define', objcolor='dark', thresh_channel=None, thresh=None, filename=False)
  • v3.1之后: marker_header, marker_data, analysis_image = plantcv.report_size_marker_area(img, roi_contour, roi_hierarchy, marker='define', objcolor='dark', thresh_channel=None, thresh=None)
  • v3.3之后: analysis_image = plantcv.report_size_marker_area(img, roi_contour, roi_hierarchy, marker='define', objcolor='dark', thresh_channel=None, thresh=None)

plantcv.resize

  • v3.0dev2之前: device, reimg = plantcv.resize(img, resize_x, resize_y, device, debug=None)
  • v3.0dev2之后: reimg = plantcv.resize(img, resize_x, resize_y)

plantcv.rgb2gray

  • v3.0dev2之前: device, gray = plantcv.rgb2gray(img, device, debug=None)
  • v3.0dev2之后: gray = plantcv.rgb2gray(rgb_img)

plantcv.rgb2gray_hsv

  • v3.0dev2之前: device, gray = plantcv.rgb2gray_hsv(img, channel, device, debug=None)
  • v3.0dev2之后: gray = plantcv.rgb2gray_hsv(rgb_img, channel)

plantcv.rgb2gray_lab

  • v3.0dev2之前: device, gray = plantcv.rgb2gray_lab(img, channel, device, debug=None)
  • v3.0dev2之后: gray = plantcv.rgb2gray_lab(rgb_img, channel)

plantcv.roi.circle

  • v3.0dev之前1: NA
  • v3.0dev2之后: roi_contour, roi_hierarchy = plantcv.roi.circle(x, y, r, img)
  • v3.2之后: roi_contour, roi_hierarchy = plantcv.roi.circle(img, x, y, r)

plantcv.roi.ellipse

  • v3.0dev之前1: NA
  • v3.0dev2之后: roi_contour, roi_hierarchy = plantcv.roi.ellipse(x, y, r1, r2, angle, img)
  • v3.2之后: roi_contour, roi_hierarchy = plantcv.roi.ellipse(img, x, y, r1, r2, angle)

plantcv.roi.from_binary_image

  • v3.0dev之前1: NA
  • v3.0dev2之后: roi_contour, roi_hierarchy = plantcv.roi.from_binary_image(bin_img, img)
  • v3.2之后: roi_contour, roi_hierarchy = plantcv.roi.from_binary(img, bin_img)

plantcv.roi.rectangle

  • v3.0dev之前1: NA
  • v3.0dev2之后: roi_contour, roi_hierarchy = plantcv.roi.rectangle(x, y, h, w, img)
  • v3.2之后: roi_contour, roi_hierarchy = plantcv.roi.rectangle(img, x, y, h, w)

plantcv.roi.roi2mask

  • v3.8之前: NA
  • v3.8之后: mask = pcv.roi.roi2mask(img, contour)

plantcv.roi.multi

  • v3.1之前: NA
  • v3.1之后: roi_contours, roi_hierarchies = plantcv.roi.multi(img, coord, radius, spacing=None, nrows=None, ncols=None)

plantcv.roi_objects

  • v3.0dev2之前: device, kept_cnt, hierarchy, mask, obj_area = plantcv.roi_objects(img, roi_type, roi_contour, roi_hierarchy, object_contour, obj_hierarchy, device, debug=None)
  • v3.0dev2之后: kept_cnt, hierarchy, mask, obj_area = plantcv.roi_objects(img, roi_type, roi_contour, roi_hierarchy, object_contour, obj_hierarchy)
  • v3.3之后: kept_cnt, hierarchy, mask, obj_area = plantcv.roi_objects(img, roi_contour, roi_hierarchy, object_contour, obj_hierarchy,roi_type='partial')

plantcv.rotate

  • v3.0dev2之前: device, rotated_img = plantcv.rotate(img, rotation_deg, crop, device, debug=None)
  • v3.0dev2之后: rotated_img = plantcv.rotate(img, rotation_deg, crop)

plantcv.rotate_img

  • v3.0dev2之前: device, rotated_img = plantcv.rotate_img(img, rotation_deg, device, debug=None)
  • v3.0dev2之后: Deprecated, see:
    • rotated_img = plantcv.rotate(img, rotation_deg, crop)

plantcv.scale_features

  • v3.0dev2之前: device, rescaled, centroid_scaled, boundary_line_scaled = plantcv.scale_features(obj, mask, points, boundary_line, device, debug=None)
  • v3.0dev2之后: rescaled, centroid_scaled, boundary_line_scaled = plantcv.scale_features(obj, mask, points, boundary_line)
  • v3.2之后: rescaled, centroid_scaled, boundary_line_scaled = plantcv.scale_features(obj, mask, points, line_position)

plantcv.scharr_filter

  • v3.0dev2之前: device, sr_img = plantcv.scharr_filter(img, dX, dY, scale, device, debug=None)
  • v3.0dev2之后: sr_img = plantcv.scharr_filter(gray_img, dx, dy, scale)

plantcv.shift_img

  • v3.0dev2之前: device, adjusted_img = plantcv.shift_img(img, device, number, side="right", debug=None)
  • v3.0dev2之后: adjusted_img = plantcv.shift_img(img, number, side="right")

plantcv.sobel_filter

  • v3.0dev2之前: device, sb_img = plantcv.sobel_filter(img, dx, dy, k, device, debug=None)
  • v3.0dev2之后: sb_img = plantcv.sobel_filter(gray_img, dx, dy, k)
  • v3.2之后: sb_img = plantcv.sobel_filer(gray_img, dx, dy, ksize)

plantcv.spectral_index.ndvi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.ndvi(hsi, distance=20)

plantcv.spectral_index.gdvi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.gdvi(hsi, distance=20)

plantcv.spectral_index.savi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.savi(hsi, distance=20)

plantcv.spectral_index.pri(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.pri(hsi, distance=20)

plantcv.spectral_index.ari(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.ari(hsi, distance=20)

plantcv.spectral_index.ci_rededge(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.ci_rededge(hsi, distance=20)

plantcv.spectral_index.cri550(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.cri550(hsi, distance=20)

plantcv.spectral_index.cri700(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.cri700(hsi, distance=20)

plantcv.spectral_index.egi(rgb_img)

  • v3.8之后: array = plantcv.spectral_index.egi(rgb_img)

plantcv.spectral_index.evi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.evi(hsi, distance=20)

plantcv.spectral_index.mari(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.mari(hsi, distance=20)

plantcv.spectral_index.mcari(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.mcari(hsi, distance=20)

plantcv.spectral_index.mtci(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.mtci(hsi, distance=20)

plantcv.spectral_index.ndre(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.ndre(hsi, distance=20)

plantcv.spectral_index.psnd_chla(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.psnd_chla(hsi, distance=20)

plantcv.spectral_index.psnd_chlb(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.psnd_chlb(hsi, distance=20)

plantcv.spectral_index.psnd_car(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.psnd_car(hsi, distance=20)

plantcv.spectral_index.psri(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.psri(hsi, distance=20)

plantcv.spectral_index.pssr_chla(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.pssr_chla(hsi, distance=20)

plantcv.spectral_index.pssr_chlb(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.pssr_chlb(hsi, distance=20)

plantcv.spectral_index.pssr_car(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.pssr_car(hsi, distance=20)

plantcv.spectral_index.rgri(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.rgri(hsi, distance=20)

plantcv.spectral_index.rvsi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.rvsi(hsi, distance=20)

plantcv.spectral_index.sipi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.sipi(hsi, distance=20)

plantcv.spectral_index.sr(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.sr(hsi, distance=20)

plantcv.spectral_index.vari(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.vari(hsi, distance=20)

plantcv.spectral_index.vi_green(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.vi_green(hsi, distance=20)

plantcv.spectral_index.wi(hsi, distance=20)

  • v3.8之后: array = plantcv.spectral_index.wi(hsi, distance=20)

plantcv.stdev_filter

  • v3.9之前: NA
  • v3.9之后: filtered_img = plantcv.stdev_filter(img, kszie, borders="nearest")

plantcv.threshold.binary

  • v3.0dev2之前: NA
  • v3.0dev2之后: bin_img = plantcv.threshold.binary(gray_img, threshold, max_value, object_type="light")

plantcv.threshold.custom_range

  • v3.3之前: NA
  • v3.3之后: mask, masked_img = plantcv.threshold.custom_range(rgb_img, lower_thresh, upper_thresh, channel='RGB')**
  • v3.8之后: mask, masked_img = plantcv.threshold.custom_range(img, lower_thresh, upper_thresh, channel='RGB')**

plantcv.threshold.gaussian

  • v3.0dev2之前: NA
  • v3.0dev2之后: bin_img = plantcv.threshold.gaussian(gray_img, max_value, object_type="light")

plantcv.threshold.mean

  • v3.0dev2之前: NA
  • v3.0dev2之后: bin_img = plantcv.threshold.mean(gray_img, max_value, object_type="light")

plantcv.threshold.otsu

  • v3.0dev2之前: NA
  • v3.0dev2之后: bin_img = plantcv.threshold.otsu(gray_img, max_value, object_type="light")

plantcv.threshold.saturation

  • v3.8之前: NA
  • v3.8之后: bin_img = plantcv.threshold.saturation(*rgb_img, threshold=255, channel="any")

plantcv.threshold.texture_filter

  • v3.0之前: NA
  • v3.0之后: bin_img = plantcv.threshold.texture_filter(gray_img, ksize, threshold, offset=3, texture_method='dissimilarity', borders='nearest', max_value=255)

plantcv.threshold.triangle

  • v3.0dev2之前: NA
  • v3.0dev2之后: bin_img = plantcv.threshold.triangle(gray_img, max_value, object_type="light", xstep=1)

plantcv.transform.apply_transformation_matrix

  • v3.0dev之前1: NA
  • v3.0dev2之后: corrected_img = plantcv.transform.apply_transformation_matrix(source_img, target_img, transformation_matrix)

plantcv.transform.calc_transformation_matrix

  • v3.0dev之前1: NA
  • v3.0dev2之后: determinant, transformation_matrix = plantcv.transform.calc_transformation_matrix(matrix_m, matrix_b)

plantcv.transform.correct_color

  • v3.0dev之前1: NA
  • v3.0dev2之后: target_matrix, source_matrix, transformation_matrix, corrected_img = plantcv.transform.correct_color(target_img, target_mask, source_img, source_mask, output_directory)

plantcv.transform.create_color_card_mask

  • v3.0之前: NA
  • v3.0之后: mask = pcv.transform.create_color_card_mask(rgb_img, radius, start_coord, spacing, nrows, ncols, exclude=[])

plantcv.transform.find_color_card

  • v3.0之前: NA
  • v3.0之后: df, start_coord, spacing = plantcv.transform.find_color_card(rgb_img, threshold='adaptgauss', threshvalue=125, blurry=False, background='dark')
  • v3.3之后: df, start_coord, spacing = plantcv.transform.find_color_card(rgb_img, threshold_type='adaptgauss', threshvalue=125, blurry=False, background='dark')
  • v3.9之后: df, start_coord, spacing = plantcv.transform.find_color_card(rgb_img, threshold_type='adaptgauss', threshvalue=125, blurry=False, background='dark', record_chip_size='median')

plantcv.transform.get_color_matrix

  • v3.0dev之前1: NA
  • v3.0dev2之后: headers, color_matrix = plantcv.transform.get_color_matrix(rgb_img, mask)

plantcv.transform.get_matrix_m

  • v3.0dev之前1: NA
  • v3.0dev2之后: matrix_a, matrix_m, matrix_b = plantcv.transform.get_matrix_m(target_matrix, source_matrix)

plantcv.transform.load_matrix

  • v3.0dev之前1: NA
  • v3.0dev2之后: matrix = plantcv.transform.load_matrix(filename)

plantcv.transform.nonuniform_illumination

  • v3.5之前: NA
  • v3.5之后: corrected_img = plantcv.transform.nonuniform_illumination(img, ksize)

plantcv.transform.quick_color_check

  • v3.0之前: NA
  • v3.0之后: plantcv.transform.quick_color_check(target_matrix, source_matrix, num_chips)

plantcv.transform.save_matrix

  • v3.0dev之前1: NA
  • v3.0dev2之后: plantcv.transform.save_matrix(matrix, filename)

plantcv.triangle_auto_threshold

  • v3.0dev2之前: device, bin_img = plantcv.triangle_auto_threshold(device, img, maxvalue, object_type, xstep=1, debug=None)
  • v3.0dev2之后: Deprecated, see:
    • bin_img = plantcv.threshold.triangle(gray_img, max_value, object_type="light", xstep=1)

plantcv.visualize.colorize_masks

  • v3.2之前: NA
  • v3.2之后: colored_img = pcv.visualize.colorize_masks(classes, colors)

plantcv.visualize.colorspaces

  • v3.8之前: NA
  • v3.8之后: plotting_img = pcv.visualize.colorspaces(rgb_img)

plantcv.visualize.histogram

  • v3.2之前: bins, hist = plantcv.plot_hist(img, name=False)
  • v3.2之后: hist_header, hist_data, fig_hist = plantcv.visualize.histogram(gray_img, mask=None, bins=256)
  • v3.3之后: hist_header, hist_data, fig_hist = plantcv.visualize.histogram(gray_img, mask=None, bins=256, color='red', title=None)
  • v3.5之后: fig_hist = plantcv.visualize.histogram(gray_img, mask=None, bins=256, color='red', title=None)

plantcv.visualize.pseudocolor

  • v3.2之前: pseudo_img = plantcv.pseudocolor(gray_img, obj=None, mask=None, cmap=None, background="image", min_value=0, max_value=255, dpi=None, axes=True, colorbar=True)
  • v3.2之后: pseudo_img = plantcv.visualize.pseudocolor(gray_img, obj=None, mask=None, cmap=None, background="image", min_value=0, max_value=255, dpi=None, axes=True, colorbar=True)
  • v3.3之后: pseudo_img = plantcv.visualize.pseudocolor(gray_img, obj=None, mask=None, cmap=None, background="image", min_value=0, max_value=255, axes=True, colorbar=True)

plantcv.watershed_segmentation

  • v3.0dev2之前: device, watershed_header, watershed_data, analysis_images = plantcv.watershed_segmentation(device, img, mask, distance=10, filename=False, debug=None)
  • v3.0dev2之后: watershed_header, watershed_data, analysis_images = plantcv.watershed_segmentation(rgb_img, mask, distance=10, filename=False)
  • v3.1之后: watershed_header, watershed_data, analysis_images = plantcv.watershed_segmentation(rgb_img, mask, distance=10)
  • v3.3之后: analysis_image = plantcv.watershed_segmentation(rgb_img, mask, distance=10)

plantcv.white_balance

  • v3.0dev2之前: device, finalcorrected = plantcv.white_balance(device, img, mode='hist',debug=None, roi=None)
  • v3.0dev2之后: finalcorrected = plantcv.white_balance(img, mode='hist', roi=None)

plantcv.within_frame

  • v3.3之前: NA
  • v3.3之后: in_bounds = plantcv.within_frame(mask)
  • v3.8之后: in_bounds = plantcv.within_frame(mask, border_width=1)

plantcv.x_axis_pseudolandmarks

  • v3.0dev2之前: device, top, bottom, center_v = plantcv.x_axis_pseudolandmarks(obj, mask, img, device, debug=None)
  • v3.0dev2之后: top, bottom, center_v = plantcv.x_axis_pseudolandmarks(obj, mask, img)
  • v3.2之后: top, bottom, center_v = plantcv.x_axis_pseudolandmarks(img, obj, mask)

plantcv.y_axis_pseudolandmarks

  • v3.0dev2之前: device, left, right, center_h = plantcv.y_axis_pseudolandmarks(obj, mask, img, device, debug=None)
  • v3.0dev2之后: left, right, center_h = plantcv.y_axis_pseudolandmarks(obj, mask, img)
  • v3.2之后: left, right, center_h = plantcv.y_axis_pseudolandmarks(img, obj, mask)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末睦刃,一起剝皮案震驚了整個(gè)濱河市砚嘴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涩拙,老刑警劉巖际长,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異兴泥,居然都是意外死亡工育,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)搓彻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)如绸,“玉大人,你說(shuō)我怎么就攤上這事好唯〗吣” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵骑篙,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我森书,道長(zhǎng)靶端,這世上最難降的妖魔是什么谎势? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮杨名,結(jié)果婚禮上脏榆,老公的妹妹穿的比我還像新娘。我一直安慰自己台谍,他們只是感情好须喂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著趁蕊,像睡著了一般坞生。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掷伙,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天是己,我揣著相機(jī)與錄音,去河邊找鬼任柜。 笑死卒废,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宙地。 我是一名探鬼主播摔认,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宅粥!你這毒婦竟也來(lái)了参袱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤粹胯,失蹤者是張志新(化名)和其女友劉穎蓖柔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體风纠,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡况鸣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了竹观。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镐捧。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖臭增,靈堂內(nèi)的尸體忽然破棺而出懂酱,到底是詐尸還是另有隱情,我是刑警寧澤誊抛,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布列牺,位于F島的核電站,受9級(jí)特大地震影響拗窃,放射性物質(zhì)發(fā)生泄漏瞎领。R本人自食惡果不足惜泌辫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望九默。 院中可真熱鬧震放,春花似錦、人聲如沸驼修。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乙各。三九已至墨礁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間觅丰,已是汗流浹背饵溅。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妇萄,地道東北人蜕企。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像冠句,于是被迫代替她去往敵國(guó)和親轻掩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354