- 博客(77)
- 收藏
- 关注
原创 图像阈值分割的原理与应用
本文系统介绍了图像阈值分割技术,重点分析了二分类阈值方法(固定阈值、P-Tile、迭代阈值和Otsu大津法)及其数学原理。针对实际应用中的光照不均、噪声干扰等问题,提出了结合平滑、直方图均衡化等改进策略。文章还详细探讨了自适应阈值技术,并提供了完整的C++/OpenCV实现代码。通过理论分析与实践结合,全面解析了如何在不同场景下选择最优分割策略,为计算机视觉任务提供了实用的阈值分割解决方案。
2025-10-30 15:58:50
630
原创 图像增强基础:直方图均衡化与自适应直方图均衡化
直方图均衡化是一种经典的图像增强技术,通过调整像素灰度分布来提升图像对比度。文章从理论原理出发,介绍了直方图均衡化及其改进算法CLAHE。直方图均衡化利用累积分布函数将图像灰度分布变得均匀,但全局处理可能导致局部过增强。CLAHE通过分块处理、对比度限制和插值,有效解决了这一问题。文章结合OpenCV实现,展示了两种算法在夜景、医学等图像中的增强效果,并分析了参数调整对结果的影响。最后指出,clipLimit参数的选取需要在增强效果与噪声抑制之间取得平衡。
2025-08-19 16:33:23
2138
原创 图像极坐标变换及超声图像上的应用
本文介绍了医学超声图像处理中极坐标变换的必要性及实现方法。由于超声探头以扇形方式扫描获取极坐标数据,需要通过坐标变换将原始扫描线矩阵转换为直观的扇形图像。文章详细阐述了极坐标与笛卡尔坐标的转换关系,并提供了两种实现方案:手工实现的双线性插值变换和使用OpenCV的remap函数优化版本。针对变换过程中原点附近的混叠问题,提出基于区域重采样的反混叠优化方法。通过坐标变换和图像处理技术,实现了超声扫描数据到扇形图像的精准可视化转换。
2025-08-12 18:19:47
2129
原创 解析图像几何变换:从欧式到仿射再到透视
图像几何变换是通过数学运算改变图像空间位置的技术,主要包括三类:欧式变换(旋转和平移)、仿射变换(增加缩放和剪切)、透视变换(模拟三维远近效果)。OpenCV提供cv::warpAffine和cv::warpPerspective等接口实现这些变换,其中仿射变换通过3对点确定变换矩阵,透视变换需要4对点。变换时需注意处理图像尺寸和坐标偏移问题,以确保变换效果完整。几何变换广泛应用于图像校正、数据增强等场景,是计算机视觉中的重要基础操作。
2025-08-05 16:05:05
2722
原创 深入理解图像插值:从原理到应用
图像插值是图像处理中的基础技术,广泛应用于缩放、旋转、超分辨率重建等领域。文章系统介绍了图像插值的原理和应用:1. 详细讲解了多项式插值(线性、二次、三次)和拉格朗日插值方法;2. 重点分析了图像处理中的五种插值算法:最邻近插值(简单但效果差)、双线性插值(效率与效果平衡)、双三次插值(基于Catmull-Rom改进)、Lanczos插值(效果最好但复杂)和区域重采样(适合缩小图像);3. 通过实例对比展示了不同插值方法在图像放大和缩小时的效果差异;4. 补充说明了Windows GDI系统中的插值应用。
2025-07-29 20:12:34
3037
原创 Gamma 变换详解:图像增强与显示系统的应用
本文系统介绍了Gamma变换在图像处理中的应用。Gamma变换是一种非线性灰度映射方法,其核心原理是通过幂函数调整图像亮度,匹配人眼对暗部更敏感的特性。文章首先通过夜景照片示例说明Gamma变换的必要性,详细推导了数学公式及导数性质,展示了不同参数下的曲线特征。在应用方面,通过两个典型案例(曝光不足和过度的风景照)演示了Gamma变换如何有效调节亮度和对比度,并给出完整的C++实现代码及优化方案。最后,文章解释了显示器Gamma校正的原理,说明其在有限位深条件下如何优化图像存储和显示。Gamma变换在图像增
2025-07-10 16:27:39
2718
原创 RGB下的色彩变换:用线性代数解构色彩世界
本文探讨了在RGB色彩空间中进行色相和饱和度调节的数学方法。通过线性代数中的旋转矩阵和投影矩阵理论,作者展示了如何直接在RGB空间中构造色相调整矩阵(绕灰度轴旋转)和饱和度调整矩阵(改变颜色向量到灰度轴的距离)。文章详细推导了相关矩阵公式,并提供了具体实现代码,演示了利用cv::transform函数对图像进行色彩变换的效果。这种方法避免了色彩空间转换,通过单次线性变换就能高效调整图像色相和饱和度,适用于需要实时色彩调节的应用场景。
2025-07-02 17:41:49
2993
2
原创 从RGB到HSI:深入理解色彩空间
本文探讨了色彩空间在图像处理中的重要性,比较了RGB与HSI空间的特性及应用。RGB虽然设备友好但不符合人类感知,而HSI通过解耦色相、饱和度、亮度三个维度,更适合进行色彩调节。文章详细推导了RGB与HSI的转换公式,并提供了C++实现代码,展示了如何利用HSI空间精确调整图像的色相和饱和度。同时对比了HSI、HSV和HSL三种色彩空间的差异,指出HSI色彩感知更真实但计算较慢,HSV/HSL则更高效但略有失真。通过理解不同色彩空间的特性,可根据具体需求选择合适的色彩模型进行图像处理。
2025-06-27 15:14:56
2096
原创 基于 OpenCV 的图像亮度、对比度与锐度调节
本文深入浅出的讲解了图像调整的基本算法,通过启发式的方式引入一些深入问题研究。同时给出了一个完整的Demo,该Demo基于OpenCV进行UI交互,可以实现基本的图像调整演示。通过对Demo改进可以快速落地一些相关应用。另外,我们将所有的图像处理均放在一个函数中,包括图像亮度对比度,图像锐度处理。对于小图像来说,这样做当然没有太多问题。当我们在项目中要求更高的实时性,或者所处理图像的尺寸特别大(如4000*3000),那么我们可以拆分每项处理,从而达到更好的实时性。
2025-06-19 16:48:49
2748
2
原创 数字图像处理与OpenCV初探
本文介绍了数字图像处理的基本概念和OpenCV的核心应用。数字图像处理是通过计算机对图像矩阵进行操作,使其更清晰、可识别。OpenCV作为开源跨平台计算机视觉库,支持C++/Python等多种语言,具备实时性强、功能丰富等特点。文章详细讲解了图像数据结构(灰度/彩色矩阵)、OpenCV的图像读取显示方法、像素访问技巧,以及关键数据结构cv::Mat的内存管理机制,包括浅拷贝与深拷贝的区别。同时强调了工程实践中需要注意的内存连续性和访问效率问题,并提供了C++和Python两种语言的代码示例,以适应不同应用场
2025-06-12 17:44:08
1927
原创 从 Laplace 到 Blob:多尺度空间中的关键点检测方法详解
本文系统介绍了基于Laplace算子的图像处理方法。首先阐述了Laplace算子通过二阶微分检测边缘的原理,并说明了LoG算子(高斯-拉普拉斯)在降噪后的优势。进而介绍了DoG算子作为LoG的高效近似方法。重点讨论了多尺度归一化LoG/DoG在Blob检测中的应用,包括特征点形状描述和旋转归一化处理。最后提供了OpenCV在Python和C++中的实现示例。这些方法为SIFT等高级特征检测算法奠定了理论基础,具有重要的图像处理应用价值。
2025-08-27 15:29:37
1103
原创 直线拟合方法全景解析:最小二乘、正交回归与 RANSAC
本文系统介绍了三种直线拟合方法:最小二乘(OLS)、正交回归(TLS)和RANSAC。OLS通过最小化纵向残差实现快速拟合,TLS通过最小化垂直距离解决旋转不变性问题,RANSAC则能有效抵抗离群点干扰。文章从线性代数投影原理出发推导了闭式解,并提供了Python和C++实现代码。综合比较表明:RANSAC+TLS组合在实际应用中能获得最稳健的拟合效果。
2025-08-27 14:25:58
1394
原创 嵌入式开发小知识点
注意,在这种编译模式下,编译可以顺利通过,但是实际调试或运行时会出现“cannot open shared object file: No such file or directory”的错误,原因是“LIBS += ./lib/libMyLib.so”的作用仅仅时指定编译期间动态库所在位置,而程序运行期是按照环境变量来搜索库文件的位置,这个可按照“1. cannot open shared object file”的解决方法的解决措施来解决。实际使用时,依据动态库项目名称而对 MyLib进行修改。
2025-08-21 08:05:26
319
原创 字符串的表示,转换与格式化输出
本文总结了Windows编程中的字符串处理方式,主要包括:1) C风格字符串(char*/wchar_t*);2) C++ STL字符串(std::string/wstring);3) ATL/MFC字符串(CString)。通过TCHAR宏定义和_UNICODE编译选项实现单双字节字符串的兼容。详细介绍了多字节编码(MBCS)与Unicode的转换方法,包括代码页选择(如CP_ACP、CP_UTF8)和转换函数(WideCharToMultiByte等)。同时分析了字符串格式化函数的实现原理,对比了标准版
2025-08-19 16:52:17
500
原创 visual studio自动向量化
本文探讨了使用SSE/AVX指令实现自动向量化的关键技术。通过VS2015的自动向量化功能,分析了不同循环结构的优化效果:简单连续内存访问的循环(如loop1)可被自动向量化;非连续访问(如loop3)或非严格步长为1的循环(如loop2)则无法自动优化。针对图像处理场景,提出了拆分RGB通道(loop4_)和展开内层循环(loop8)等优化策略,以提升向量化效果。实验表明,合理的内存访问模式和循环结构设计是发挥SIMD指令性能的关键因素。
2025-08-15 09:26:55
901
原创 字符集及编码
本文介绍了字符编码的发展历程:从最初的ASCII单字节编码,到针对不同语言扩展的本地化编码方案(如中文GB2312、繁体BIG5),再到统一的多语言解决方案Unicode。文章详细对比了单字节/双字节字符集特点,阐述了Unicode的UTF-8/UTF-16编码规则,并提供了Windows平台下字符集转换的API示例。最后说明Windows系统内部采用Unicode处理字符,通过代码页机制实现多语言兼容,支持应用程序本地化需求。全文系统梳理了字符编码技术的演进与应用实践。
2025-08-14 08:41:16
771
原创 浮点数的二进制表示
本文介绍了计算机中定点数和浮点数的表示方法。定点数分为定点整数(小数点在最尾部)和定点小数(小数点位于符号位右侧),并详细说明了原码与补码的转换规则及加减运算中的溢出判断方法。浮点数采用科学计数法表示,分为单精度(32位)和双精度(64位)两种格式,包含符号位、指数和尾数三部分,并分析了浮点数误差的来源(表示误差和对阶误差)及应对策略。文中通过-158.4的转换实例展示了单精度浮点表示过程,指出浮点数本质上是实数集的有限子集,存在不可避免的表示误差。最后介绍了使用FLT_EPSILON和DBL_EPSILO
2025-08-14 08:39:43
819
原创 几种经典排序算法的实现
本文介绍了三种经典排序算法的实现原理和代码:1.插入排序通过不断将元素插入有序序列实现排序,时间复杂度O(n²);2.归并排序采用分治策略,递归合并有序子序列,时间复杂度O(nlogn);3.堆排序利用堆数据结构特性,通过构建和调整堆实现排序,时间复杂度O(nlogn)。三种算法中,插入排序简单但效率低,归并排序和堆排序效率较高但实现较复杂。每种算法都给出了C++实现代码,并分析了其时间复杂度特征。
2025-08-12 19:24:26
655
原创 OpenCV图像几何变换
本文通过OpenCV C++演示了常见的图像几何变换操作,包括欧式变换(旋转与平移)、仿射变换和透视变换。文章详细介绍了使用cv::getRotationMatrix2D生成旋转矩阵的方法,以及如何结合平移矩阵实现复合变换。同时讲解了cv::warpAffine函数的使用参数,并通过具体代码示例展示了平移+旋转的实现过程。对于更复杂的变换,文章对比了仿射变换(需3对点)和透视变换(需4对点)的区别,指出仿射变换保持平行性而透视变换不保持的特性。最后提供了完整的代码实现示例,帮助读者理解不同几何变换的实际应用
2025-08-08 09:08:28
1291
1
原创 使用消元法求解逆矩阵
摘要:本文介绍了两种求逆矩阵的方法:Gauss-Jordan消元法和LU分解法。Gauss-Jordan法通过对增广矩阵[A|I]进行消元,当A化为单位矩阵时I即变为A的逆矩阵,该方法计算量大但逻辑简单。LU分解法则将矩阵分解后进行多次回带求解,只需一次分解即可通过求解多个线性方程组得到逆矩阵的各列,适用于较大矩阵的求逆计算。两种方法各有优劣,适用于不同规模的矩阵求逆问题。
2025-08-06 09:18:30
396
原创 向量范数与矩阵范数
本文讨论了向量和矩阵范数的概念与应用。在实数空间中,向量大小的比较需要定义特定准则,如欧氏距离(L2范数)、元素绝对值之和(L1范数)、非零元素个数(L0范数)和最大元素绝对值(L∞范数)。对于矩阵范数,它表示矩阵对向量进行线性变换时的最大差异,具体包括基于列绝对值之和最大值的L1范数、基于行绝对值之和最大值的L∞范数,以及基于最大特征值平方根的L2范数。这些范数为度量向量和矩阵变换提供了不同准则。
2025-08-05 14:12:59
544
原创 Hessian Matrix
摘要:本文讨论了二元函数极值的判别方法。对于二元二次函数,通过求偏导得到临界点,并根据系数关系判断极值性质(极大值、极小值或鞍点)。推广到一般二元函数时,利用二阶泰勒展开和Hessian矩阵进行分析:通过行列式符号判断极值类型,特征值的正负决定函数在临界点的性质(极大值、极小值或鞍点)。Hessian矩阵的特征值分解提供了更直观的判别依据。
2025-07-31 10:06:03
372
原创 成像系统中的点扩散与调制传递函数
摘要:成像系统可视为线性移不变系统,通过点扩散函数(PSF)描述空域中的卷积变换,调制传递函数(MTF)则表征频域中的乘积变换。系统将理想图像分解为冲击函数的线性组合,通过PSF卷积得到输出图像。频域中,系统对特征函数仅改变幅度和相位,MTF量化了不同频率成分的响应特性。二维图像的变换过程可表示为PSF卷积或MTF乘积,完整描述了线性成像系统的空域和频域特性。(149字)
2025-07-31 09:24:59
572
原创 OpenCV图像缩放:resize
图像缩放是图像处理的基础操作,OpenCV提供了cv::resize函数实现此功能。该函数支持多种插值方式:INTER_NEAREST(最快但效果差)、INTER_LINEAR(默认)、INTER_CUBIC(适合放大)和INTER_AREA(专为缩小设计)。需特别注意不要与cv::Mat::resize混淆,后者仅改变矩阵元素数量而非图像尺寸。实际应用中,缩小图像推荐使用INTER_AREA,批量处理时可统一设置目标尺寸。正确选择插值方法和区分函数用途是提升图像处理效果的关键。
2025-07-30 10:58:46
919
原创 向量点积与叉积
本文从直角坐标与极坐标角度探讨了向量点积和叉积的特性。点积度量向量相似度,在相同、相反和垂直方向时分别取得最大值、最小值和零值。叉积则度量向量差异性,在垂直时差异最大,同向或反向时为零。叉积结果包含数值和方向信息,方向由右手定则确定。文章推导了任意向量的叉积表达式,表明直角坐标与极坐标表示结果一致,并将叉积表示为行列式形式。两种运算分别从不同角度揭示了向量间的关系。
2025-07-30 09:11:50
390
原创 opencv中contours的使用
摘要: OpenCV提供轮廓检测与处理功能,cv::findContours()用于提取图像轮廓,支持多种提取模式(如树形结构、层级关系)和压缩方法。轮廓数据使用STL容器存储,通过cv::drawContours()绘制。轮廓操作包括多边形近似(cv::approxPolyDP())、计算长度/面积、拟合几何形状(矩形、圆、椭圆)、凸包检测等。参数如mode和method控制提取方式和精度,而offset便于ROI操作。注意:非闭合边缘(如Canny结果)需特殊处理,建议使用边缘跟踪替代轮廓检测。
2025-07-13 17:44:36
877
原创 OpenCV图像数据处理:convertTo,normalize和scaleAdd
本文介绍了OpenCV中三种核心图像处理函数:cv::convertTo()用于数据类型转换和线性缩放,cv::normalize()实现数据归一化,cv::scaleAdd()执行加权叠加运算。通过具体示例演示了从图像读取到增强处理的完整流程,包括灰度转换、Sobel边缘检测、归一化处理以及最终加权融合输出。这些函数组合使用能有效实现图像对比度增强、特征融合等常见任务,为计算机视觉应用提供基础技术支持。
2025-07-12 08:18:43
843
原创 SimpleBlobDetector的使用
本文介绍了OpenCV中的SimpleBlobDetector方法及其实现原理。该方法通过连续阈值处理图像,使用findContours提取候选Blob区域,并通过五个筛查条件(颜色、面积、圆形度、凸性、惯性)筛选有效Blob。具体步骤包括:1)多阈值分割;2)轮廓提取;3)几何特征筛选;4)半径计算;5)最终Blob合并。文中还分析了各筛查条件的数学原理,如圆形度计算公式和惯性比计算方法,并给出了OpenCV实现的部分核心代码,展示了基于图像矩的特征计算过程。该方法适用于简单场景下的高效Blob检测。
2025-07-06 14:50:03
1050
原创 基于HOGDescriptor的行人检测
1)行人检测默认图像块为 64 * 128,当需要检测其他尺寸下是否存在行人时,需要将其缩放到默认尺寸,如尺寸 100 * 200, 128 * 256... ,但检测长宽比总为 1:2 的区域;以 8 * 8 的步长在 64 * 128 图像块上扫描图像,每次扫描形成一个 1 * 36 vector 并归一化,最终得到 7 * 15 * 36 = 3780 个元素的特征向量;double scale:计算其他检测尺度,当 scale 越趋近 1,形成更多检测尺度,检测越细致;
2025-07-05 17:07:21
885
原创 使用LU分解求解线性方程组
摘要:本文介绍了利用LU分解法求解线性方程组Ax=b的过程。当矩阵A各列线性无关时,通过消元法将A分解为下三角矩阵L和上三角矩阵U,并可通过行变换矩阵P处理主元为0的情况。具体步骤包括:消元系数取反构成L,记录U;当需要行交换时调整L和P;最后分别求解Lc=Pb和Ux=c获得解x。该方法系统地解决了消元过程中的主元为零问题,为线性方程组的求解提供了有效途径。(149字)
2025-07-03 12:20:11
413
原创 方向梯度与拉格朗日乘数法
本文探讨了梯度、方向梯度与拉格朗日乘数法的相关概念。首先分析了梯度垂直于等高线/等值面的性质,通过参数化推导证明了梯度与切向量的正交性。其次研究了方向梯度的计算,指出方向导数最大值出现在梯度方向,并提出其在图像边缘检测中的应用思考。最后介绍了两种条件极值求解方法:变量消元法和拉格朗日乘数法,重点推导了拉格朗日乘数法的原理,说明其通过梯度共线条件求解极值点,但需额外比较确定极值性质。全文系统阐述了多元函数微分学中的核心概念及其几何意义。
2025-07-03 08:56:16
807
原创 二维空间的线性变换
左乘矩阵A,矩阵A将向量X变换为向量Y。使用矩阵A对向量进行变换称为线性变换。向量X可以分解为n个基向量的和。3)依次对其他基向量做应用类似2)的操作,得到矩阵A的其他列的值。在分析中,函数y=f(x)将输入值x变换到输出值y,同样对向量。镜像变换:镜像变换H可以根据投影变换推导出来,根据图形得。应用规定的变换(及矩阵A欲实施的变换)得到向量。旋转变换:根据变换矩阵计算方法,基向量。投影变换:根据变换矩阵计算方法,基向量。为任意点到直线A的投影变换矩阵。,该向量即为矩阵A的第一列值;
2025-06-29 15:49:44
391
原创 理解图像的随机噪声
标准差表征概率分布宽度,当使用多次测量求平均可以降低随机变量波动范围,从而实现去噪。3)对图像中同一点进行 N 次测量,其测量结果为 N 次随机变量。1)随机变量 x 的概率密度函数 p(x) 定义为:当。2)随机变量 x 的期望(均值)定义为。3)整理得 p(x) 的概率密度为。随机变量 x 标准差为。3)随机变量 x 的方差定义为。的离散分布,统计直方图的极限形式为随机变量。2)线性变换随机变量,方差满足。随机变量 x 方差为。,且各个随机变量均值与方差都为。,p(x) 发生的概率为。
2025-06-28 18:00:04
503
原创 图像配准模型
如何两幅图像特征点之间得变换为仿射变换,使用以上方案求解最佳变换矩阵是合理的;但如果两幅图像间变换为相似变换或者刚体变换,以上方案则存在参数冗余。由于受到镜头畸变以及成像角度影响,匹配点间的变换关系一般都无法使用简单线性关系表示,可以首先利用简单线性变换求得一个初始变换参数,估计第二次迭代后变换误差值,比较相邻两次迭代的变换误差可知是否得到一个更好的收敛值,同时也可以根据变换误差值决定何时终止迭代。在平移与旋转基础上添加缩放变换则构成了相似变换,相似变换使得变换前后点间距离发生变化,但保持角度不变。
2025-06-18 08:52:35
1260
原创 理解SVD分解
为任意选择正交单位向量,无法确保 U 也为正交向量,所以需要重新选择。的伪逆就是对对角线上非零元素求倒数,且U,V均为正交矩阵,故。对于任意矩阵 A(方阵或长方形矩阵),可以分解为。,该组特征向量构成矩阵 U,完成 SVD 分解;的特征值矩阵,将对角线上元素开平方即为。,其中,U,V 为两个不相同的正交矩阵,由于 U 为正交矩阵,满足。2)对矩阵 A 进行 SVD 分解为。到此,可以将矩阵 A 分解为。,U,V 均为正交矩阵,利用。,该组特征向量构成矩阵 V;,该方程组没有解,但方程组。
2025-06-17 09:12:22
410
原创 目标跟踪--meanshift&camshift
meanshift 跟踪使用一个固定的区域去迭代被跟踪物体中心,当视场大小发生改变时,meanshift 跟踪到物体尺寸没有发生改变,同时也会因为跟踪尺寸与物体成像尺寸不一致而产生跟踪误差,因此引入camshift。3)使用 cv::calcHist 函数计算目标图像直方图,对于彩色图像,可选择H与S通道计算直方图,也可以值选择H通道计算直方图,我认为选择H和S通道计算直方图可提供更准确的分析结果。对于前景物体一致性较好的分割应用,通过选择一个较小的局部区域即可实现完美的分割。
2025-06-17 09:09:07
983
原创 理解同态滤波
一般情况下,光照变化比较缓慢,光照函数一般对应低频部分;而物体反射变化比较剧烈,反射函数一般对应高频部分。如果对图像函数做类似高频强调滤波,则有可能解决光照不均问题。通过以上建模,对照射分量与反射分量进行分离,使用不同滤波器H(u,v)参数,可以有效的控制照射分量与反射分量。,其中D(u,v)为到频率中心的距离;
2025-06-16 11:47:13
312
原创 光与颜色的关系(色彩理论)
根据色度图,可以使用另一种语言描述颜色,称为单色表示(monochromatic specification),连接中间白色点与颜色[C]点,并延长颜色[C]点使其与色度图边缘相交,交点为颜色[C]的主波长分量(dominant wavelength),白点到颜色[C]距离与白点到主波长距离比为刺激纯度分量(excitaion purity),颜色[C]可由白光与主波长光按刺激纯度混合得到。如一张白纸在明亮的环境下感觉是白色的,在昏暗的环境下人眼也同样感觉为白色的。色温曲线表示不同温度下黑体发光颜色。
2025-06-13 09:20:37
1004
原创 高动态范围成像
在拍摄的一组不同曝光图像序列中,不同图像间不可避免存在一些位移,如果位移仅有相机抖动引起,可以使用全局平移参数进行描述。可使用 opencv 提供的 MergeDebevec 类合成辐照图,HDR 图像可以使用不同的格式存储,包括 .ppm,.hdr,.exr,每种格式对辐照值的表达上限不一致。自然景物的辐照范围很广,同样人眼也可以感知到很大的辐照范围下的图像,然而摄像机成像很容易饱和或者曝光不足,所以需要根据拍摄场景来设置合理的快门时间(或者光圈,ISO等参数)。// 非零元越少表示重合程度越高。
2025-06-12 19:39:56
676
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅