E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
图像处理算法学习
机器视觉对工业机器人有什么作用?
而如今,随着传感器、
图像处理
及光学成像等技术快速的崛起与发展,为机器视觉在中国的发展插上了腾飞的翅膀,有了质一般实际的进展。
工业机器视觉前沿
·
2024-01-29 15:47
工业级机器视觉
工业机器人
3D视觉引导
制造业
工厂
生产线
第10章【基础API与常见算法】
第10章基础API与常见
算法学习
目标了解数学相关API了解日期时间API了解系统类API掌握数组基础算法掌握数组工具类的使用熟练掌握String类的API熟练掌握StringBuilder和StringBuffer
黎明的前夜
·
2024-01-29 14:15
Java从基础到强化
算法
java
开发语言
intellij-idea
【无人机三维路径规划】基于人工蝶群算法ABO实现复杂地形无人机三维航迹规划附Matlab代码
更多Matlab完整代码及仿真定制内容点击智能优化算法神经网络预测雷达通信无线传感器电力系统信号处理
图像处理
路径规划元胞自动机无人机内容介绍摘要无人机三维路径规划是无人机自主飞行和协同作业的关键技术之一
天天Matlab科研工作室
·
2024-01-29 13:59
无人机
算法
matlab
探秘Photoshop | 一站式了解所有相关信息
Photoshop是迄今为止世界上最强大的图像编辑软件,它已成为许多涉及
图像处理
的行业标准。
不秃头的UI设计师
·
2024-01-29 12:14
photoshop
ui
C#使用OpenCvSharp4库中5个基础函数-灰度化、高斯模糊、Canny边缘检测、膨胀、腐蚀
、高斯模糊、Canny边缘检测、膨胀、腐蚀使用OpenCV可以对彩色原始图像进行基本的处理,涉及到5个常用的处理:灰度化模糊处理Canny边缘检测膨胀腐蚀1、测试图像lena.jpg本例中我们采用数字
图像处理
中经常用到的一副标准图像
雪域迷影
·
2024-01-29 08:13
OpenCV
编程语言学习
C#
WinForm和WPF
c#
开发语言
opencv
【算法】
算法学习
七:动态规划 | 背包问题 | 最长公共子串(含源代码)
文章目录一、背包问题二、动态规划三、背包问题的Python代码实战3.1源代码3.2代码逐行解读四、最长公共子串4.1最长公共子串4.2最长公共子序列一、背包问题背包问题是一种经典的组合优化问题,通常有两个版本:0-1背包问题和无限背包问题。0-1背包问题是指给定一个背包容量和一组物品,每个物品有自己的重量和价值,要求在不超过背包容量的情况下,选择一些物品放入背包,使得物品的总价值最大化。每个物品
旅途中的宽~
·
2024-01-29 07:59
算法类
算法
学习
动态规划
背包问题
算法学习
记录:动态规划基础
目录前言:背景知识:正文:什么是动态规划(更新中):理解动态规划:状态:状态转移:运用动态规划(分析步骤):例题集(时间顺序)1.蓝桥OJ3820:混境之地5(DFS)2.蓝桥OJ216:地宫取宝(DFS)3.蓝桥OJ1536:数字三角形(迭代法)4.蓝桥OJ3367:破损的楼梯(迭代法)5.蓝桥OJ3423:安全序列(迭代法)6.蓝桥OJ389:摆花(二维DP)(迭代法)7.蓝桥OJ3362:建
D.Thrive
·
2024-01-29 07:26
学习
动态规划
算法
算法学习
记录:有关树的基础
前言:
算法学习
记录不是算法介绍,本文记录的是从零开始的学习过程(见到的例题,代码的理解……),所有内容按学习顺序更新,而且不保证正确,如有错误,请帮助指出。
D.Thrive
·
2024-01-29 07:26
学习
算法学习
记录:位运算
前言:
算法学习
记录不是算法介绍,本文记录的是从零开始的学习过程(见到的例题,代码的理解……),所有内容按学习顺序更新,而且不保证正确,如有错误,请帮助指出。
D.Thrive
·
2024-01-29 07:55
学习
算法
算法学习
记录:动态规划
前言:
算法学习
记录不是算法介绍,本文记录的是从零开始的学习过程(见到的例题,代码的理解……),所有内容按学习顺序更新,而且不保证正确,如有错误,请帮助指出。
D.Thrive
·
2024-01-29 07:23
学习
动态规划
算法
[Python
图像处理
] 使用OpenCV创建深度图
使用OpenCV创建深度图双目视觉创建深度图相关链接双目视觉在传统的立体视觉中,两个摄像机彼此水平移动,用于获得场景上的两个不同视图(作为立体图像),就像人类的双目视觉系统:通过比较这两个图像,可以以视差的形式获得相对深度信息,该视差编码对应图像点的水平坐标的差异。两个立体图像中单个像素的位移量称为视差(disparity),像素的视差与其在场景中的深度成反比。可以用灰度值对每个像素的视差进行编码
AI technophile
·
2024-01-29 07:19
Python图像处理实战
python
图像处理
计算机视觉
数字
图像处理
(实践篇)三十二 OpenCV-Python比较两张图片的差异
目录一方案二实践通过计算两张图像像素值的均方误差(MSE)来比较两张图像。差异大的两张图片具有较大的均方差值,相反,相似的图片间则具有较小的均方差值。需要注意的是。待比较的两张图像要具有相同的高度、宽度和通道数。一方案①导入依赖库importcv2importnumpyasnpimportmatplotlib.pyplotasplt
Jackilina_Stone
·
2024-01-29 06:34
数字图像处理(入门篇
实践篇
综合篇)
数字图像处理
python
OpenCV
opencv 形态学
图像处理
-自适应阈值二值化
什么是形态学处理基于图像形态进行处理的一些基本方法这些处理方法基本上是对二进制图像进行处理卷积核决定着
图像处理
的效果形态学
图像处理
的方法腐蚀与膨胀开运算闭运算顶帽黑帽什么是二值化将图像的每个像素变为两种值
美老师
·
2024-01-29 05:21
opencv
基础
python基础
opencv
图像处理
计算机视觉
数字
图像处理
(实践篇)二十七 Python-OpenCV 滑动条的使用
目录1涉及的函数2实践1涉及的函数⒈setWindowProperty()用于设置GUI应用程序的属性cv2.setWindowProperty(windowsName,prop_id,prop_value)参数:①
Jackilina_Stone
·
2024-01-29 05:36
数字图像处理(入门篇
实践篇
综合篇)
图像处理
python
opencv
嵌入式教程_DSP教学实验箱操作:5-14 灰度图像二值化(LCD显示)
在数字
图像处理
中,二值图像占有非常重要的地位,特别是在实用的
图像处理
中,以二值
图像处理
实现而
Tronlongtech
·
2024-01-29 04:18
计算机视觉
人工智能
图像处理
紫外工业相机在半导体制造检测系统中的应用
使用
图像处理
算法进行图像分析,可以对各种缺
超凡三眼仔
·
2024-01-29 04:44
机器视觉
制造
深度强化学习之价值学习-王树森课程笔记
DeepQ-Network(DQN)1.原理2.DQN结构(以超级玛丽为例)3.用DQN操作Agent打游戏三、TemporalDifferenceLearning(TD算法)1.原始算法(类似BP)2.TD算法3.用TD
算法学习
淀粉爱好者
·
2024-01-29 03:23
机器学习
神经网络
深度学习
6.如何对区域进行填充操作
read_image(Image,'egypt1')*对图像进行二值化处理,
图像处理
的前基本步骤*用于全局阈值分割图像,获取像素值介于MinGray和MaxGray的区域也可以说剔除图像内像素值高于一定值
baivfhpwxf2023
·
2024-01-28 23:44
机器视觉
学习
笔记
双线性插值(Bilinear Interpol)原理及应用
一、什么是插值插值指两个方面:一是在数学上,在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点;二是在
图像处理
上面,是利用已知邻近像素点的灰度值或RGB中的三色值产生未知像素点的灰度值或
interesting233333
·
2024-01-28 22:22
双线性插值
Bilinear
上采样
插值
大数据毕业设计:Python人脸识别门禁系统 深度学习 Dlib模块 Pyqt5界面 数据库(源码)✅
1、项目介绍技术栈:Python语言、dlib人脸识别模块、OpenCV
图像处理
库、Pyqt5框架界面设计、sqlite3数据库Pychar
q_3548885153
·
2024-01-28 22:48
biyesheji0001
biyesheji0002
毕业设计
python
深度学习
人脸识别
毕业设计
机器学习
计算机视觉
人脸
算法学习
(5):LeetCode刷题之滑动窗口
前言:滑动窗口算法专门优化一种连续问题场景,如找出字符串或者数组中满足xx条件的最长(或最短)的连续子串(或子数组)。滑动窗口的解题思路如下:需要用到双指针进行求解,两个指针构造一个窗口,窗口的移动是重点!右指针每次往前移动一格,每次移动会有一个新的元素进入窗口,这时条件可能就会发生变化,再根据当前条件来决定左指针是否移动,以及移动多少格。总的来说,右指针每次必然要移动一格,目的是要探索“可能性”
name_s_Jimmy
·
2024-01-28 19:50
算法
leetcode
算法
滑动窗口
详解
最长子串
某里P7程序员推荐,C++超完整学习路线!(内附资料)
通过使用C++语言实现Web服务器,Markdown解析器,内存池以及Docker容器管理工具等,学习并实践C++编程基础,C++11/14标准,C++
图像处理
及增强现实技术。
_pangzi
·
2024-01-28 19:59
PHP在线
图像处理
程序,基于Photoshop的网页版图片处理源码
源码介绍对于喜爱图像编辑的朋友们来说,Photoshop无疑是处理照片的利器。然而,传统的Photoshop软件不仅需要下载安装,还对电脑配置有一定的要求,这无疑增加了使用的门槛。现在,我们为您带来一款革命性的在线PS修图工具——基于PHP开发的网页版PS源码。这款在线PS修图工具能够在浏览器中流畅运行,让您无需下载和安装任何软件,即可轻松进行照片编辑、调整和美化。它几乎涵盖了Photoshop软
行动之上
·
2024-01-28 19:35
源码免费下载
php
图像处理
photoshop
工业机器人运动学与Matlab正逆解
算法学习
笔记(用心总结一文全会)(三)——逆运动学P2
文章目录建立DH模型机器人正运动学机器人逆运动学△求θ1\theta_1θ1、θ2\theta_2θ2、θ3\theta_3θ3△代数解求θ4\theta_4θ4、θ5\theta_5θ5、θ6\theta_6θ6○求解θ4\theta_4θ4○求解θ5\theta_5θ5○求解θ6\theta_6θ6△三轴相交的Pieper解法△机器人逆运动学多解的判断机器人雅可比矩阵CSDN提示我字数太多,一
Mist_Orz
·
2024-01-28 17:01
机器人
MATLAB
机器人
matlab
机器人运动学
运动学逆解
雅克比
工业机器人运动学与Matlab正逆解
算法学习
笔记(用心总结一文全会)(二)——逆运动学P1
文章目录建立DH模型机器人正运动学机器人逆运动学※代数解、几何解,解析解(封闭解)、数值解的含义与联系△代数解求θ1\theta_1θ1、θ2\theta_2θ2、θ3\theta_3θ3※参考资料※关于为何使用atan2()函数求解○求解θ1\theta_1θ1○求解θ3\theta_3θ3○求解θ2\theta_2θ2·机器人学导论的方法(失败的尝试)·参考的文章中的方法(失败的尝试)·一个大
Mist_Orz
·
2024-01-28 17:00
机器人
MATLAB
matlab
机器人
机器人运动学
运动学逆解
14.STL 常用算法
14.1常用遍历
算法学习
目标:掌握常用的遍历算法算法简介:for_each//遍历容器treansform//搬运容器到另一个容器中14.2for_each功能描述:实现遍
霜晨月c
·
2024-01-28 16:46
#
C++提高编程
c++
算法
开发语言
笔记
学习
数字
图像处理
(实践篇)二十九 OpenCV-Python在图像中检测矩形、正方形和三角形的实践
目录1方案2实践1方案①检测矩形和正方形⒈检测图像中的所有轮廓。⒉循环检查所有检测到的轮廓。⒊为每个轮廓找到近似的轮廓。如果近似轮廓中的顶点数为4,则计算宽高比用来区分矩形和正方形。如果宽高比在0.9到1.1之间,则认为为正方形,否则的话,则为矩形。
Jackilina_Stone
·
2024-01-28 16:15
数字图像处理(入门篇
实践篇
综合篇)
数字图像处理
python
OpenCV
【CTWVRP】遗传算法求解带软时间窗+容量约束+成本(固定+运输+制冷+惩罚)车辆路径规划【含Matlab源码 3836期】
更多Matlab仿真内容点击Matlab
图像处理
(进阶版)路径规划(Matlab)神经网络预测与分类(Matlab)优化求解(Matlab)语音处理(Matlab)信号处理(Matlab)车间调度
Matlab领域
·
2024-01-28 15:28
Matlab路径规划(高阶版)
matlab
算法学习
系列(二十八):快速幂、逆元
目录引言一、快速幂概念二、代码模板三、例题1.快速幂模板题四、快速幂求逆元引言这个快速幂还是很重要的,算是一个比较基础的问题在数论里面,主要是为了降低时间复杂度用的,然后介绍了逆元的概念以及如何用快速幂来求。一、快速幂概念求akmodpa^{k}\mod\pakmodp,一般就是累积kkk次,时间复杂度为O(N)O(N)O(N)快速幂:先预处理出a20,a21a22⋯a2logka^{2^{0}}
lijiachang030718
·
2024-01-28 15:03
算法
算法
学习
算法学习
系列(二十七):欧拉函数、欧拉定理、费马小定理
目录引言一、欧拉函数1.概念2.求每个数的欧拉函数二、线性筛法求欧拉函数三、欧拉定理,费马小定理引言本文主要介绍欧拉函数、线性筛法求欧拉函数,以及公式是怎样推导出来的,并且介绍了欧拉定理,以及费马小定理是怎样被推导出来的。一、欧拉函数1.概念欧拉函数ϕ(N):欧拉函数\phi(N):欧拉函数ϕ(N):1~N中与N互质的数的个数,(互质:公约数只有1的两个自然数)N=p1α1⋅p2α2⋅p3α3⋅⋯
lijiachang030718
·
2024-01-28 15:32
算法
算法
学习
算法学习
系列(二十九):裴蜀定理、扩展欧几里得算法
目录引言一、裴蜀定理二、扩展欧几里得算法模板三、公式推导四、例题1.扩展欧几里得算法模板题2.线性同余方程引言这个扩展欧几里得算法用的还是比较多的,而且也很实用,话不多说直接开始吧。一、裴蜀定理裴蜀定理:对于任意正整数a和b,一定存在非零整数x和y,使得ax+by=gcd(a,b)裴蜀定理:对于任意正整数a和b,一定存在非零整数x和y,使得ax+by=gcd(a,b)裴蜀定理:对于任意正整数a和b
lijiachang030718
·
2024-01-28 14:58
算法
算法
学习
将SVG 转换为png -- ImageMagick 转换 svg 为透明png 图
ImageMagick是一个强大的
图像处理
工具,其下载地址为:ImageMagick–Downloadhttps://imagemagick.org/script/download.php该工具免费开源
大飞飞鱼
·
2024-01-28 13:24
Windows办公使用问题
HTML5技术
SVG转PNG图
ImageMagick
SVG
蚂蚁集团持续探索生成式AI,20篇论文入选AI顶会NeurlPS
据了解,蚂蚁此次入选的论文,覆盖计算机视觉、自然语言处理、图神经网络、
图像处理
等多个人工智能和机器学习领域的前沿主题。其中七成以上论文聚焦生成式AI在高速发展中遇到的一些挑战和难题。以下为其中
金融机器智能官方
·
2024-01-28 13:48
开源
论文阅读
机器学习
人工智能
深度学习
大数据
图像处理
常用八大算法
前言图片处理是开发过程中经常遇到和要处理的问题,毕竟图片是比较耗系统资源,网络资源,存储空间。。。,因此,图片的处理显得格外重要,去百度查阅资料,就会看到很多关于读片处理的方法,以及图片的加载框架,他们都是用来处理图片的。常见的图片处理方式大概有如下几类。比如图片的等比缩放,图片海量加载,图片的裁剪,图片的无损压缩,图片的旋转,图片实现画中画,图片实现阴影,改变图片形状等然后,这些操作只是符合日常
Hirezy
·
2024-01-28 12:57
Android
算法
Linux
神经网络
深度学习
红外
图像处理
算法介绍
大纲:1.红外图像增强研究背景和意义2.红外图像增强经典算法1-红外图像增强研究背景和意义1.1研究背景红外图像是红外技术与成像技术结合的产物。人类感知只限于电磁波谱的可见光波段,对于全部电磁波谱上其它不可见光,如γ射线、X射线、紫外线、红外线、微波等,人类的视觉则无法感知。然而科学技术的发展使得成像技术与设备可以覆盖几乎全部电磁波谱,从γ射线到无线电波,将人类不可见的射线转化为可见的图像,这些图
Hack电子
·
2024-01-28 12:25
图像处理
算法
计算机视觉
人工智能
OpenCV
图像处理
常用算法
一、直方图和滤波器1、直方图:在灰度图中,每个点的像素范围为0~255,密度是具有该值的图像像素数量。2、色彩均衡:色彩均衡的目的是获得分布更加均匀的直方图。其结果将会导致图像的对比度增加。3、LUT色彩空间转换表:生成一个256个元素的矩阵,取得要从源空间变换到目标色彩空间的变换函数f(x)。从0到255,对每个数字带入到f(x)中,将得到的结果存入到矩阵中对应的位置。然后,对要处理的图像使用这
已注 销
·
2024-01-28 12:54
图像处理
计算机视觉
python
图像处理
opencv
算法
图像处理
常用算法介绍
此篇简单回顾下
图像处理
领域常用到的一些算法,这边只对每个知识点重要的点做一些记录,便于快速的知其形,会其意。
竹叶青lvye
·
2024-01-28 12:52
程序员的数学
图像处理
计算机视觉
人工智能
上位机
图像处理
和嵌入式模块部署(qt插件的使用)
【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:
[email protected]
】一个软件一般有很多的功能,但是主流程只有一个。但在软件开发的过程当中,一般来说功能是需要不断添加的,但是主流程最好不要轻易修改。这里的插件就相当于各种各样的功能,而主流程就是如何怎么去调用这些插件的功能。所以,今天正好来学一下怎么添加qt插件,个人觉得这部分还是非常重要的。1、创建一个qtwidget项
嵌入式-老费
·
2024-01-28 12:41
上位机图像处理和嵌入式模块部署
qt
开发语言
OpenCV
图像处理
实现手势识别贪吃蛇(含完整代码)
OpenCV
图像处理
实现手势识别贪吃蛇(含完整代码)版本pyrhon3.8opencv-python4.9.0.80numpy1.21.5简介MediaPipeHands是一种高保真手和手指跟踪解决方案
砍树+c+v
·
2024-01-28 11:45
OpenCV学习
opencv
图像处理
人工智能
Python face-recognition库,dlib库安装方法(附下载文件)
dlib是一个功能强大的计算机视觉库,提供了许多常用的
图像处理
和特征提取算法。face_recognition利用了dlib中的
砍树+c+v
·
2024-01-28 11:14
OpenCV学习
人工智能
python
机器学习
opencv
算法学习
#31 合并两个有序数组
题目详情给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m+n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。示例1:
0daydreamer0
·
2024-01-28 11:40
腐蚀及膨胀的python实现——数字
图像处理
原理像处理中的腐蚀和膨胀是形态学操作的两个基本概念,它们广泛应用于图像预处理、特征提取和其他图像分析任务。腐蚀(Erosion)腐蚀操作可以看作是图像中形状的"收缩"。其基本原理是使用一个结构元素(通常是一个小的矩阵,例如3x3、5x5的矩阵),该结构元素在输入图像上滑动,并将结构元素覆盖区域内的像素与结构元素进行比较。二值图像:对于二值图像,如果结构元素与图像在该区域的像素完全匹配(通常意味着所
筱筱西雨
·
2024-01-28 09:50
图像处理
python
计算机视觉
图像处理
opencv
人工智能
多元统计分析 Python 主成分分析 PCA
没有过度灰度图像:图像像素由量化的灰度级来描述图像,没有彩色信息,灰度级分256等,0表示黑色,255表示白色彩色图像(RGB图像):RGB表示红色、绿色和蓝色三色通道,计算机里所有颜色都是按不同比例组成,RGB是
图像处理
中最基本
Cistanche Herba
·
2024-01-28 07:05
Python
python
sklearn
pytorch 卷积神经网络CNN
www.ai-xlab.comAIMOOC卷积神经网络CNN1www.ai-xlab.comAIMOOC卷积神经网络是近年发展起来,并广泛应用于
图像处理
,NLP等领域的一种多层神经网络。
Jiang_Immortals
·
2024-01-28 06:06
人工智能
OpenCV-28 全局二值化
1)指一系列处理图像型状特征的
图像处理
技术2)形态学的基本思想是利用一直特殊的结构元(本质上是卷积核,且这个卷积核的值只有1和0)来测量或提取输入图像中相应的型状或特征,以便进一步进行图像分析和目标识别
一道秘制的小菜
·
2024-01-28 05:56
OpenCV
opencv
人工智能
计算机视觉
numpy
python
算法基础学习笔记——⑤离散化\区间和并
✨博主:命运之光✨专栏:算法基础学习目录✨简述特指整数离散化离散化模板:✨区间和并区间和并模板:前言:
算法学习
笔记记录日常分享,需要的看哈O(∩_∩)O,感谢大家的支持!
命运之光
·
2024-01-28 04:20
#
算法基础学习
算法
位运算、离散化和区间合并
算法学习
1.位运算1.1使用背景在进行位运算时,我们可以将数看为二进制数,而位运算也就是对于数特定位置的值进行运算。1.2例题801.二进制中1的个数在找数字中的1的时候有两种常用方法。当1>t;intcnt=0;for(;t;t-=lowbit(t))cnt++;cout>n>>m;for(inti=0;i>x>>c;if(a[x])a[x]+=c;elsea[x]=c;all.push_back(x)
Dreaife-BW
·
2024-01-28 04:49
AcWing
#
AcWing基础课
算法
学习
图像处理
相关算法之饱和度调整
调整饱和度的方法,代码如下:voidAdjustSatuation(cv::Mat&image,floatadjust){intwidth=image.cols,height=image.rows;for(inti=0;i(i);for(intj=0;j(data[j][0]*(1.0f+lumMask)-lum*lumMask);data[j][1]=cv::saturate_cast(data
xiechaoyi123
·
2024-01-27 21:13
图像增强
图像处理
算法
人脸识别 基于MTCNN网络的人脸检测与对齐算法(MTCNN代码复现)
论文背景人脸检测与人脸对齐意义论文的研究成果人脸检测的研究趋势论文采用的方法思路阶段一阶段二:阶段三卷积网络设计层面Loss损失函数的设定面部分类边界框回归人脸关键点定位L2范数在线困难挖掘论文实验数据集网络模块代码实现激活函数P-Net模块代码R-Net模块代码O-Net
图像处理
过程中图像金字塔
郭庆汝
·
2024-01-27 21:43
MTCNN人脸识别
FPN结构
图a是一个特征图像金字塔结构,在传统的
图像处理
中是非常常见的一个办法。针对我们要检测不同尺度的目标的时候呢,会将图片首先给缩放
酸酸甜甜我最爱
·
2024-01-27 21:42
基础理论学习
人工智能
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他