鹤草芽、龙牙草、施州犬土精、瓜香草、青龙尾、铁胡蜂,简书同步

仙鹤草

contents属性

CALayer有一天性质叫做contents,那个个性的类型被定义为AnyObject?,意味着它能够是可空的自由档次对象。在那种景观下,能够给contents属性赋任何值,你的App照旧能够编写翻译通过。不过在实践中,若是给contents赋的不是CGImage,那么图层将是空手的。

contents属性类型之所以被定义为AnyObject?,是因为在Mac
OS系统上,那么些天性对CGImage和NSImage类型的值都起效果。如若在iOS平台中将UIImage的值赋给它,只可以取得四个空荡荡的图层。

依据上三个德姆oCode,我们这一次直接把layerView的宿主图层的contents属性设置成图片

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var layerView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()

    let image = UIImage(named: "snowman")

    self.layerView.layer.contents = image?.CGImage
  }
}

UIView的宿主图层中显示一张图纸

description: vision
总结,发于reasonw.github.io,简书同步

图片 1

contentGravity属性

在应用UIImageView的时候蒙受过图片被拉伸的处境,消除方案便是把contentMode属性设置成有个别合适的值,例如:

imageView.contentMode = .ScaleAspectFit

CALayer与contentMode对应的特性叫做contentsGravity,不过它是叁个String类型,而不是2个枚举类型。contentsGravity可选的常用值有以下那一个:

  • kCAGravityCenter
  • kCAGravityTop
  • kCAGravityBottom
  • kCAGravityLeft
  • kCAGravityRight
  • kCAGravityTopLeft
  • kCAGravityTopRight
  • kCAGravityBottomLeft
  • kCAGravityBottomRight
  • kCAGravityResize
  • kCAGravityResizeAspect
  • kCAGravityResizeAspectFill

和contentMode一样,contentsGravity的目标是为着控制内容在图层的疆界中如何对齐,假若使用kCAGravityResizeAspect,它的效果1样UIViewContentModeScaleAspectFit,同时它仍是能够在图层中等比例拉伸以适应图层的界线。

self.layerView.layer.contentsGravity = kCAGravityResizeAspect

小名:鹤草芽、犬太子参、施州犬沙参、瓜香草、白虎尾、铁胡蜂

contentScale属性

contentScale属性定义了寄宿图的像素尺寸和视图大小的比重,暗中认可情形下它是一个值为一.0的浮点数。

contentScale属性其实属于援助高分辨率显示器机制的一局地。它用来判定在绘制图层的时候理应为寄宿图创立的空中尺寸和内需显示的图样的拉伸度。

借使contentScale值为①.0,将会以每二个点3个像素绘制图片,假若设置为贰.0,则会以每种点2个像素绘制图片,便是熟稔的Retina屏幕。

当用代码的办法来处理寄宿图时候,一定要铭记在心要手动的装置图层的contentScale属性,不然图片在Retina设备上就呈现不正确。

self.layerView.layer.contentsScale = UIScreen.mainScreen().scale

视觉报告—分割篇

图像中的显然属性别变化化1般反映了那几个性格的基本点和潜移默化

普遍的意况有:深度不总是,表面方向不延续,物质属性别变化化,场景照明变化

优良的划分算法可以相当大削减数据量

基源植物:蔷薇科龙芽草属多年生草本植物犬人参的单调全草。

masksToBounds属性

UIView有两个叫clipToBounds的性情,能够用来决定是不是出示抢先边界的始末,CALayer对应的品质叫做masksToBounds,设置值为true,内容就不会抢先边界了。

self.layerView.layer.masksToBounds = true

图:使用masksToBounds来修建图层内容

OpenCV

经文分割方法

图片 2

contentsRect属性

CALayer的contentsRect属性允许在图层边框里展现寄宿图的贰个子域。

和bounds、frame不一样,contentsRect不是比照点来测算的,它采纳的是单位坐标,单位坐标钦赐在0到一里头,是1个相对值(像素和点便是相对值)。

iOS使用了以下的坐标种类

  • 点:在iOS和Mac
    OS中最广泛的坐标体系。点就好像虚拟的像素,也被称作逻辑像素。在行业内部配备上,二个点正是叁个像素,可是在Retina设备上,1个点等于2三个像素或31个像素。iOS用点作为荧屏的坐标测算类别正是为了在Retina设备和普通设备上能有雷同的视觉效果。
  • 像素:物理像素坐标并不会用来显示屏布局,然则还是与图片有相对关系。UIImage是三个荧屏分辨率消除方案,所以钦定点来衡量尺寸。不过一些平底的图纸表示,如CGImage就会动用像素,所以大家要清楚在Retina设备和平凡设备上,它们表现出来了不相同的轻重缓急。
  • 单位:对于与图片大小或是图层边界相关的显得,单位坐标是一个惠及的心路形式,当大小改造的时候,也不供给再行调整。单位坐标在OpenGL那种纹理坐标连串有效的很多,Core
    Animation中也应用了单位坐标。

暗中认可的contentsRect值是{0,0,一,一},意味着全体寄宿图暗中同意都以可见的。

实则给contentsRect设置3个负数的原点或是大于{一,一}的尺码也得以。这种状态下,最外侧的像素会被拉伸以填充剩下的区域。

下边进入1些代码,能够只展现snowman的右上角6分之1的始末,而layer的轻重保持不变,所以显得的剧情会被拉伸。

// 选择右上角四分之一为内容
self.layerView.layer.contentsRect = CGRectMake(0.5, 0, 0.5, 0.5)
//拉伸
self.layerView.layer.contentsGravity = kCAGravityResize

体现右上角5分之一内容,且拉伸

据说边缘分割

骨子里情形中图像边缘往往是各连串型的边缘及模糊化后的结果组合,且实际非能量信号噪声较多。

噪音和边缘都属于高频噪声,难用频带取舍。

  • 边界分割法
       点+线+边缘检验

    能够加1些图像巩固或腐蚀膨胀等形态学处理,强化或弱化指标边界,去噪

1_1.png

一阶算子 介绍
Roberts 2*2四邻域差分寻找边缘 无平滑,噪声较敏感
1_1_roberts.png
Sobel/Prewitt 3*3邻域卷积梯度微分,处理垂直和水平边缘 处理灰度渐变低噪声,定位校准
1_1_sobel.png
Log 先平滑,拉氏变换后求二阶积分再卷积 消除尺度小于σ的图像强度变化,计算量小,易丢失细节
1_1_log.png
Canny 准高斯函数做平滑,带方向一阶微分算子定位导数最大值 检测弱边缘效果很好,运算较慢
1_1_canny.png

检验完提取

实体边界一般是线,不是独立的点。边界表示使图像表示更简介,方便高层次精通

难点在于边界划分缺损,不是密闭连通边界图,梯度大的点也不肯定真是边缘点

能够加一些开闭运算,形态学梯度,顶帽黑帽,颗粒分析,流域调换,骨架提取,击中击不中转换等形态学处理,强化或弱化指标边界,强化学物理体结构

数学形态学是一门建立在严酷数学理论功底上的教程。象方差,弦长分布,周长度量,颗粒总计等
统称为击中击不中转变

数学形态学理论功底是击中击不中转变,开闭运算,布尔模型和纹理分析器

方法 介绍
简单连接 相邻点边缘强度差和边缘方向小于阈值时,可以连接。无则停止,多则取差最小的点
启发式搜索 从多种可能路径中选优,评价函数打分
曲线拟合 若边缘点很稀疏,可以用分段性或高阶样条曲线来拟合这些点,形成边界。拟合方法多为均方误差最小准则

任何还有hough调换,图寻觅,动态规划等

拉丁学名:Agrimonia pilosa Ldb.

contentsCenter属性

从contentsCenter属性名字看,初学者很有相当大希望觉得它和图表的任务有关,可是这几个名字误导了你。
contentsCenter其实是2个CGRect,它定义了3个定位的边框和3个在图层上可拉伸的区域。
暗中认可意况下,contentsCenter是{0,0,一,1},那表示假使大小(由contentsGravity决定)改造了,那么寄宿图将会均匀地拉伸。

设若contentsCenter属性是上海体育地方中间的森林绿方框,那么当那些图形被拉伸后,contentsCenter属性定义的区域会被周密拉伸(也正是从多少个样子进行拓宽或减少),而被那些方框分隔后的别样方格会依据上海体育场所所示的展开横向大概纵向的拉伸,只怕有些方框根本不拉伸,那正是contentsCenter属性的意义。

contentsCenter属性和contentsRect属性壹样,同样是以比例作为单位。两特本性能够叠加,纵然contentsRect属性棉被服装置,contentsCenter属性就会操作contentsRect属性所定义的范围。

上面进入1些代码,基于上个snowman效果,把左下角的5分之1部分张开拉伸

 //左下角四分之一拉伸
 self.layerView.layer.contentsCenter = CGRectMake(0, 0.5, 0.5, 0.5)

也能够在Interface Builder里配置,而不要求写代码

阈值分割

1_2.png

阈值分割算法实际上正是设定阈值的矩阵贰值化,所以那么些输入的灰度矩阵能够变成以0:255为限量的任何别的矩阵
譬如速度矩阵,深度矩阵,明度矩阵等等以及别的兼具总结本性的矩阵

选取图像中要提取目的和背景在某1性情上的反差,选拔合适阈值进行分割。

  • 单阈值分割方法(全局)
  • 多阈值分割方法(局地)
  • 依据像素值/区域性质/坐标地方的阈值分割方法
  • 依照分割方法所怀有的特征或轨道,可分为直方图峰谷法/最大类空间方差法/最大熵法/模糊集法/特征空间聚类法/基于过渡区的阈值选拔法等
  • 直方图阈值的双峰法
  • 迭代法(最好阀值分割迭代法 k-means)
  • 大律法(otsu阈值分割算法)
  • 类内方差最小方差法
  • 微小错误概率分类法
  • 基于熵的二值化方法
  • 一部分自适应

植物状态:

Custom Drawing

为contents赋CGImage值并不是唯一设置寄宿图的不二等秘书籍。大家也能够平素用Core
Graphics直接绘制寄宿图。

上面通过代码达成CALayerDelegate来绘制图层

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var layerView: UIView!

override func viewDidLoad() {
    super.viewDidLoad()

    // 创建子layer
    let blueLayer = CALayer()
    blueLayer.frame = CGRectMake(50.0, 50.0, 100.0, 100.0)
    blueLayer.backgroundColor = UIColor.blueColor().CGColor

    //设置layer的delegate
    blueLayer.delegate = self

    //确保layer的寄宿图使用正确的scale
    blueLayer.contentsScale = UIScreen.mainScreen().scale

    self.layerView.layer.addSublayer(blueLayer)

    //强制layer重绘
    blueLayer.display()
  }

override func drawLayer(layer: CALayer, inContext ctx: CGContext) {

    CGContextSetLineWidth(ctx, 10.0)

    CGContextSetStrokeColorWithColor(ctx, UIColor.redColor().CGColor)

    CGContextStrokeEllipseInRect(ctx, layer.bounds)
  }
}

注意

  • blueLayer上显示地调用了display()。不一致于UIView,当图层彰显在荧屏上时,CALayer不会自动重绘它的剧情,它把重绘的决定权交给了开采者。
  • 固然那里没有设置masksToBound属性,绘制的不行圆依旧沿着边界被压缩了。这是因为当使用CALayerDelegate绘制寄宿图的时候,并未对超越边界外的剧情提供绘制援助。

聊到底只有你创立了三个单独的图层,你大致一贯不机会用到CALayerDelegate协议。因为当UIView创制了它的寄宿图层时,它会活动地把图层的delegate设置为自身,并提供了二个displayLayer的贯彻。

演示代码地址

听他们讲区域分割

1_3.png

图片 3

区域生长法

区域生长的1致性描述是区域生长法的基本准则,1般是灰度,也能够设想颜色/纹理/形状等其余品质

传说阈值的艺术是根据单个点的特色。基于区域的不二等秘书诀驰念到相邻点的一致性。

亟待规定:

  • 种子像素,一般能够依照聚类核心作为种子中央,也能够设定二个阈值,在此阈值内的点为种子点

  • 发育形式和每一回生长后这一个区域的壹致性准则,如灰度差小于阈值,简单的发育格局,区域的有所八邻域点。

若该点参预后,该区域满意一致性准则,则参加。

当多个区域知足一定准则时,合并多少个区域。该规则可以设想八个区域分其余均值和方差。

若果没有预先确定的种子点,可利用一般步骤:

 一.用某种准则把图像分割成许多小区域

 2.定义合并相邻区域的守则,供给小心区域联合获得的结果受区域统一顺序影响

 叁.依照统一准则合并全数相邻的区域,如若未有再能够联合的块后截至。

不一致的分开药方法和归并准则适应差异情况。相邻区域特征值之间的异样是总结强度的多少个原则。
强边界保留,弱边界消除,相邻区域联合。总结是3个迭代,每一步重新总结区域成员隶属关系,并排除弱边界。无弱边界消除时合并结束。
计量费用较大,但归纳运用的话对自然现象分割效果相对最棒。

发育准则:

  • 灰度差准则

    一.dd 扫描图像,找寻无隶属的像素

    二.反省邻域像素,每种相比,灰度差小于阈值即集合
    (对种子点重视较大,能够求全部邻接区域平均灰度差,合并差小的交界区域/
    还可一直用像素所在区域平均灰度值代替此像素灰度值实行比较。)

    叁.以新合并的像素为宗旨,重复步骤二,直至区域无法特别扩展

    4.赶回步骤1,重复,至找不到无隶属像素,截止生长。(能够友善设定终止准则)

  • 灰度分布总结准则

    以灰度分布相似性座位上生长准则来控区域的相会,步骤如下:

    一.把图像分为互不重叠的小区域

    二.相比较邻接区域的聚积灰度直方图很据灰度分布相似性实行区域统1

    3.设定终止准则,重复步骤二将各区域依次合并直至满意终止准则

    灰度分布相似性检测方法 | Kolmogorov-Smirnov {maxz(h1(z)-h2(z))} | Smoothed-Difference{Σz|h1(z)-h2(z)|}

  • 区域形状准则

    方法壹:把图像分割成灰度固定的区域,设两相邻区域周长分别位p壹p贰,把两区域共同边界线两侧灰度差小于给定值的有的设为L,若L/min(p1,p2)>T1则统壹两区域。

    措施二:把图像分割成灰度固定的区域,设两邻接区域联合边界长度位B,把两区域共同边界线两侧灰度差小于给定值部分的尺寸设为L,若L/B>T2则合并

多年生草本

区域差距

原有图像    模糊滤波    差别合并   差别扩展

1_3_split.png

区域区别与区域统一相反

先借使任何图像是一个对象,不满意壹致性准则,则差距(一般是均分为5个子图像),重复,直至全部区域满意一致性准则。像纺锤形的肆叉树差距

,高30-120cm。

区域差距+合并

从中间层起首拍卖,遵照1致性准则该区别分化该联合合并。起源是四叉树的某一层节点。

  • 边缘+区域 分割
    经过边缘限制,幸免区域过分割,通过区域分割补充漏检边缘。

    如先举行边缘检查评定与连接,在比较相邻区域的特点(灰度均值,方差等),若周围则统1。

    对本来图像分别开始展览边缘检查测试和区域抓牢,获得边缘图和区域分段图后,再按一定准则融合,获得终极分割结果。

  • 连通域标记
    基于边缘的格局依照所得闭合边界,接纳边界跟踪和内部填充的法子。

    基于区域的主意1般选用连通性分析方法,依据一定的逐壹把连通的像素用相同的序号标注

1.把全部像素点放到待处理点集合A中。

贰.倘使A空则甘休。不然从A中随心所欲移出一点看成连通域a(用集合表示)的初步点
三.在A中检索具有与a连通的点,并移到a中,若未有找到,重复2,寻觅下四个连通域。
四.重复三,迭代找出新的连通点。

图片 4

SaliencyCut

1_4_saliency.png

Global Contrast Based Salient Region
Detection

_南开程明明
download

根茎短,基部常有一或数个违规芽。

特出工具分开

  • 小波
  • Marco夫随飞机场
  • 遗传算法
  • 神经网络/Kmeans/主动轮廓模型(能量函数)

图片 5

挪动分割

差分(时空灰度梯度) 光流(运动场)

参考
图像分割

茎被疏柔毛及短柔毛,稀下部被疏长硬毛。

PCL

因为维度的扩张,是的剪切成为三个维度图像比较贰维图像的最大优势。使得最优先分配割成为大概

图片 6

Ransac算法

随机采集样品1致,找平面,找线,找圆柱等 能够拍卖噪声较多的情景

2_1.png

动用方法:

//创制1个模型参数对象,用于记录结果

pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients);

//inliers代表引用误差能忍受的点 记录的是点云的序号

pcl::PointIndices::Ptr inliers (new pcl::PointIndices);

// 创设四个分割器

pcl::SACSegmentation<pcl::PointXYZ> seg;

// Optional

seg.setOptimizeCoefficients (true);

// Mandatory-设置指标几何样子

seg.setModelType (pcl::SACMODEL_PLANE);

//分割方法:随机采集样品法

seg.setMethodType (pcl::SAC_RANSAC);

//设置标称误差容忍范围

seg.setDistanceThreshold (0.01);

//输入点云

seg.setInputCloud (cloud);

//分割点云

seg.segment (*inliers, *coefficients);

2_1_youtube.png

奇数羽状复叶互生;托叶镰形,稀卵形,先端急尖或渐尖,边缘有锐锯齿或裂片,稀全缘;小叶有大小贰种,相间生于叶轴上,较大的小叶三-四对,稀二对,向上收缩至三小叶,小叶几无柄,倒卵形至倒卵状披针形,长一.5-五cm,宽1-2.伍cm,先端急尖至圆钝,稀渐尖,基部楔形,边缘有急尖到圆钝锯齿,上边青灰,被疏柔毛,下边淡中蓝,脉上伏不熟悉柔毛,稀脱落无毛,有显着腺点。

身临其境消息

  • kdTree & OcTree

    检索策略,建立相邻关系

#include <pcl/point_cloud.h>

#include <pcl/kdtree/kdtree_flann.h>

//创建kdtree 结构

pcl::KdTreeFLANN<pcl::PointXYZ> kdtree;

//传入点云

kdtree.setInputCloud (cloud);

//设置输入点

pcl::PointXYZ searchPoint;

//k附近寻觅

int K = 10;

//设置四个容器,第贰个放点的标号,第二个点到SearchPoint的距离

std::vector<int> pointIdxNKNSearch(K);

std::vector<float> pointNKNSquaredDistance(K);

//进行寻觅,注意,此函数有重返值>0为找到,<0则没找到

kdtree.nearestKSearch (searchPoint, K, pointIdxNKNSearch,
pointNKNSquaredDistance)

// 基于距离的寻找 //

//多个未知尺寸的容器,作用同上

std::vector<int> pointIdxRadiusSearch;

std::vector<float> pointRadiusSquaredDistance;

// 寻找半径

float radius = 3;

//寻找,效果同上

kdtree.radiusSearch (searchPoint, radius, pointIdxRadiusSearch,
pointRadiusSquaredDistance)

  • 欧氏距离

    细分,可以用半径做滤波,删除离群点

//被分开出来的点云团(标号队列)

std::vector<pcl::PointIndices> cluster_indices;

//欧式分割器

pcl::EuclideanClusterExtraction<pcl::PointXYZ> ec;

ec.setClusterTolerance (0.02); // 2cm

ec.setMinClusterSize (100);

ec.setMaxClusterSize (25000);

//搜索策略树
ec.setSearchMethod (tree);

ec.setInputCloud (cloud_filtered);

ec.extract (cluster_indices);

  • 区域拉长
    能够自定义规则,如法线,曲率,颜色,距离等等

2_2_region_chair.png

2_2_region_corridor.png

//一个点云团队列,用于存放聚类结果

std::vector <pcl::PointIndices> clusters;

//区域生长分割器

pcl::RegionGrowing<pcl::PointXYZ, pcl::Normal> reg;

//输入分割目的

reg.setSearchMethod (tree);

reg.setNumberOfNeighbours (30);

reg.setInputCloud (cloud);

//reg.setIndices (indices);

reg.setInputNormals (normals);

//设置限定标准及先验知识

reg.setMinClusterSize (50);

reg.setMaxClusterSize (1000000);

reg.setSmoothnessThreshold (3.0 / 180.0 * M_PI);

reg.setCurvatureThreshold (1.0);

reg.extract (clusters);

图片 7

minCut算法

图论

2_3.png

图片 8

超体聚类

看似于超像素的概念
超体聚类8叉树划分

2_4.png

今非昔比晶体间的分界关系

2_4_super_tree.png

总状花序单1或二-贰个生于茎顶,花序轴被柔毛,花梗长一-5mm,被柔毛;苞片平常三深裂,裂片带形,小苞片对生,卵形,全缘或边缘分化;花直径6-玖mm,萼片五,三角卵形;花瓣5,长圆形,雪青;雄蕊5-壹5;花柱二,丝状,柱头头状。

听闻凹凸性

依照超体聚类之后差异的结晶总括凹凸关系,实行私分

2_5.png

只允许区域跨越凸边拉长

2_5_convex.png

健全效果…

2_5_convex_perfect.png

图片 9

基于形态学

2_6.png

图片 10

图片 11

图片 12

图片 13

图片 14

瘦果倒卵椭圆形,外面有十条肋,被疏柔毛,先端有数层钩刺,幼时直立,成熟时向内先靠合,连钩刺长7-八mm,最宽处直径约3-4mm。

图片 15

图片 16

花果期5-12月。

丹顶鹤中药材特征:

图片 17

任何长50-100cm,被反动柔毛。茎下部纺锤形,直径0.四-0.6cm,天紫红,上部方柱形,四面略凹陷,绿褐毛,有纵沟及棱线,有节;体轻,质硬,易折断,断面中空。

图片 18

单数羽状得复叶互生,大青色,皱缩卷曲;质脆,易碎;叶片有大小二种,相间生于叶轴上,顶端小叶较大,完整小叶片张开后呈卵形或长正方形,先端尖,基部楔形,边缘有锯齿;托叶贰,抱茎,斜卵形。

图片 19

总状花序细长;气微,味微苦。优等品以质嫩、叶多者为佳。

丹顶鹤中草药性:

制作: 开花前枝叶茂盛时采收。

性味:味苦、涩,性平。

归经: 肺;肝;脾经

作用主要医治:收敛利肠府,除热,杀虫。主痛风症;咽痛;尿血;脱肛;膀胱湿热;失眠口疮;劳伤脱力;腰痛;跌打;创伤出血

用法用量:内服:煎汤,十-一5g,大剂量可用30g;或入散剂。外用:捣敷;或熬膏涂敷。

只顾:非出血不止者不用。

丹顶鹤草的轶事:

   
 一年三夏,多少个文化人进京赶考。他们害怕误了考期,一路不停赶路,累体面虚痛风症。一天,多个人来到1处前不着村,后不着店的荒滩,又渴又饿,却又随处歇脚。七个文人墨客连劳顿带上火,突然鼻孔里流血不止,另1个知识分子吓慌了,急迅把教导的旧书撕成条儿,卷成捻儿去塞朋友的鼻孔。可她塞住了鼻子,血又顺着嘴往外流。那些贡士没了主意:“那可怎么办呢?”
“有点水就好了。” “你让自家上什么地方找水去?”

     
正在那时,唰地一声,有只丹顶鹤从她们头顶飞过。口鼻冒血的文人墨客羡慕的张开单手,喊道:“慢点,借笔者翅膀用用,让作者飞出那鬼地点吗!”仙鹤受了惊吓,一张嘴,叼着的一根野草掉落下来。另三个先生笑捡起来,说:“翅膀借不来,先拿它润润嗓子吧。”口鼻冒血的贡士忙接过野草放进嘴嚼起来。说也怪,嚼了相当的小会儿血竟止住了。

     
 多个人快意极了:“哈哈,仙鹤送仙草来了!”后来,他俩终于没误了考期,几年过去,都做了官。一天,三人碰在同步,想起荒沙滩的遇到,都想再找到那种能镇痛的中中草药材。于是,他俩回顾着药材的榜样,画出图来,命人照图寻觅。就那样找了数不完年,最终才把那种药草找到。

       
那是一种有羽毛样的卡牌、金天开黄华的中药,确有收敛解热的成效。它还有补虚、消积、利肠府、杀虫的成效。为了回忆送药的白鹤,他们就给那种药草取名称叫“仙鹤草”了。

仙鹤草与谢朓楼:

  很久以前,亚马逊河中有片小洲叫鹦鹉洲,洲的前后有1座楼,楼内住着个白发苍苍的老壹辈。老人懂管农学,壹边任务行医,1边养性修行,相当受肆乡珍贵。有年金天的1天,不知从哪个地方飞来两头黄鹤,扑棱棱落在了楼前,并发出凄惨的哀鸣。众乡亲围上前去,见黄鹤满是血,就纷纭议论,有说黄鹤想飞回故乡,迷失了主旋律,便摔下来;有说黄鹤受了伤,故意落在此地,祈望有人救它等等。老人闻声出楼,看了看流血的黄鹤,便钻进楼后的林子里,1会儿,他采来了1把羽毛样叶子、开盈盈白花的杂草,洒抹在黄鹤的创口上,没多长期就止住了血。之后,老人精心喂养黄鹤,黄鹤也不慢就康复了。又过了些时日,1天中午,老人向众乡亲辞行后,乘着鹤飞往天上去了。乡亲们预计,老人早已成仙,而黄鹤正是仙界派来迎接老人的。但他俩都不知老人毕竟寻了哪个地方。后来,乡亲们就把前辈住过的楼称“谢朓楼”,把前辈给黄鹤疗伤的野草叫“仙鹤草”。

  很多年后,后金有个叫崔灏的作家游历滕王阁,听到了那个故事,便诗兴大发,留下了千古诗篇《天心阁》:“昔人已乘黄鹤去,此地空余滕王阁。黄鹤未有,白云千载空悠悠。晴川清楚汉阳树,芳草萋萋鹦鹉洲。日暮乡关何处是?烟波江上使人愁。”再后来,大小说家青莲居士也赶来黄鹤楼,也诗兴大发,但看了崔灏的诗,他没敢多写。

相关文章