1. 为什么“halcon算子面试题”值得单独拿出来聊
搞机器视觉这行的朋友,尤其是做工业检测、定位、测量的,对Halcon这个工具肯定不陌生。它不像OpenCV那样开源免费、社区庞大,但它在工业现场的稳定性和算子丰富程度上,确实让很多做项目的人又爱又恨。爱的是它一套算子组合拳下来,很多复杂检测逻辑能快速落地;恨的是它License贵、资料相对封闭,而且面试的时候,面试官特别喜欢盯着算子问你底层逻辑和实际场景。
我这些年带过不少新人,也参与过一些技术面试,发现一个很普遍的现象:很多人简历上写着“熟练使用Halcon”,但你问他edges_sub_pix和edges_image有什么区别、dyn_threshold在什么光照条件下会翻车、connection之后为什么要跟select_shape,他答得模棱两可。这就是典型的“会调库但不懂算子”。而面试官问Halcon算子题,恰恰不是考你背手册,而是考你对图像处理链路和工业场景的理解。
这篇文章我打算把Halcon算子面试里最高频的几类问题拆开讲,不只是给答案,而是把每个算子背后的设计意图、参数怎么定、什么场景用哪个、踩过哪些坑,都掰开揉碎说清楚。不管你是准备面试的工程师,还是刚接手Halcon项目的新手,或者想从OpenCV转Halcon的老手,这篇内容都能让你对算子的理解上一个台阶。我会尽量用现场项目的例子来讲,少堆公式,多说人话。
2. Halcon算子面试的核心考察逻辑
2.1 面试官到底想通过算子题考什么
很多人以为面试官问算子就是考记忆力,看你知不知道threshold怎么用。其实不是。Halcon算子有上千个,没人能全背下来,面试官自己也不行。他们真正想考察的是三层东西。
第一层是图像处理链路的思维。比如给你一张有划痕的金属表面图,问你从哪一步开始。你如果上来就说“用threshold二值化”,面试官基本就皱眉了。因为工业图像往往光照不均、对比度低,直接阈值分割大概率把背景和缺陷一起分没了。正确的思路是先做预处理,比如emphasize增强高频细节,或者illuminate做光照校正,再考虑分割。面试官想听的是你脑子里有没有一条清晰的Pipeline。
第二层是参数背后的物理意义。Halcon很多算子参数不是随便填的,比如edges_sub_pix里的Alpha,它控制的是边缘提取的平滑程度,本质上是高斯核的尺度。Alpha越大,抗噪越强但边缘定位越粗;Alpha越小,边缘精细但噪声敏感。你如果只知道填0.5、1.0,不知道它对应什么物理量,面试官一问“这个参数调大调小分别什么效果”你就露馅了。
第三层是场景适配能力。同一个检测任务,用blob分析能做,用measure工具也能做,用matching也能做。面试官会问你为什么选这个不选那个。这时候你要能说出:blob适合面积型缺陷、measure适合边缘尺寸测量、matching适合有纹理或形状先验的目标定位。选错了不是不能用,而是鲁棒性和效率差很多。
2.2 高频算子分类与面试出现频率
我把这些年见过的Halcon面试题按算子类别整理了一下,出现频率从高到低大致是这样的:
| 算子类别 | 代表算子 | 面试出现频率 | 主要考察点 |
|---|---|---|---|
| 边缘提取 | edges_sub_pix, edges_image, sobel_amp | 极高 | 亚像素原理、Alpha参数、Canny对比 |
| 阈值分割 | threshold, dyn_threshold, binary_threshold | 极高 | 光照适应性、局部vs全局 |
| 形态学 | opening_circle, closing_rectangle1, connection | 高 | 结构元选择、先开后闭逻辑 |
| 形状选择 | select_shape, select_shape_std | 高 | 特征组合、面积/圆度/矩形度 |
| 模板匹配 | create_shape_model, find_shape_model | 高 | 金字塔层级、角度范围、Score阈值 |
| 测量 | measure_pos, measure_pairs, gen_measure_rectangle2 | 中高 | 边缘对、过渡类型、亚像素 |
| 相机标定 | calibrate_cameras, image_points_to_world_plane | 中 | 标定流程、畸变校正 |
| 深度学习 | read_dl_model, apply_dl_model | 中 | 与传统算子结合、推理部署 |
这张表你可以当作复习优先级来用。边缘提取和阈值分割是必问的,因为它们是几乎所有视觉任务的起点。形态学和形状选择是区分“会用”和“用得好”的分水岭。模板匹配和测量是工业项目里最核心的两类任务,面试官如果做过实际项目,一定会问。
2.3 从算子题看候选人的项目经验真伪
有个很实用的判断方法:如果候选人能把算子题和具体项目场景绑在一起讲,基本是真做过项目的。比如问dyn_threshold,他说“我在做液晶屏Mura缺陷检测的时候用过,因为Mura对比度极低,全局阈值根本分不出来,用dyn_threshold配合mean_image做局部背景估计,MaskSize设成缺陷宽度的2到3倍效果最好”。这种回答一听就是踩过坑的。
反过来,如果候选人只会背“dyn_threshold是动态阈值,用于光照不均的图像”,再问细节就卡壳,那大概率是临时抱佛脚。面试官有时候会故意追问:“那你MaskSize一般设多少?为什么?”这时候没有项目经验的人就答不上来了。
所以准备Halcon算子面试,最有效的方法不是刷题库,而是把自己做过的项目重新过一遍,每个环节用了什么算子、为什么用、参数怎么定的、遇到什么问题怎么解决的,全部梳理清楚。下面我就按这个思路,把几类核心算子展开讲。
3. 边缘提取类算子深度拆解
3.1 edges_sub_pix与edges_image的本质区别
这是Halcon面试里出现频率最高的一道题,没有之一。很多人知道edges_sub_pix能出亚像素精度,edges_image出像素级,但面试官想听的不是这个。
edges_image是基于Canny或Deriche等经典边缘检测算法,输出的是边缘幅度图和方向图,你需要再跟一个threshold和nonmax_suppression才能得到边缘。它的优势是你可以完全控制中间过程,比如你想自己调非极大值抑制的阈值,或者你想拿边缘方向做后续处理。
edges_sub_pix则是一个封装好的亚像素边缘提取算子,内部用的是Deriche、Lanser还是Canny,取决于你选的Filter参数。它直接输出XLD轮廓,精度可以到0.1像素甚至更高。关键点在于:亚像素精度不是靠插值硬算出来的,而是基于边缘模型的拟合。简单说,它假设边缘附近的灰度分布符合某种函数形式(比如高斯边缘模型),然后通过矩或者拟合来求边缘的亚像素位置。
面试里常追问:“edges_sub_pix的Alpha参数和edges_image的Alpha是一回事吗?”答案是:概念类似,都控制平滑尺度,但edges_sub_pix的Alpha对最终轮廓的连续性和闭合性影响更大。Alpha太小,轮廓碎;Alpha太大,圆角被抹平。我一般建议从1.0开始试,根据边缘粗细和噪声调整。
3.2 Alpha参数怎么定:一个现场计算示例
假设你在做一个手机玻璃盖板的边缘检测,图像分辨率是2448×2048,镜头视野是100mm×80mm,那么单像素对应物理尺寸大约是0.04mm。玻璃边缘的倒角宽度大约是0.2mm,换算成像素就是5个像素左右。
这时候Alpha怎么定?Alpha本质上是Deriche滤波器的高斯平滑尺度,经验公式是Alpha约等于边缘宽度的1/3到1/2。边缘宽度5像素,Alpha取1.5到2.5比较合适。如果你取0.5,滤波器太窄,噪声会导致边缘断裂;取5.0,滤波器太宽,倒角的两个边缘会被合并成一个。
我实际测试过,Alpha=2.0的时候,edges_sub_pix配合select_contours_xld按长度筛选,能得到最稳定的单像素宽轮廓。这个计算过程面试的时候如果能讲出来,面试官会觉得你是真的理解参数,而不是瞎试。
3.3 Canny、Sobel、Laplacian在Halcon里的对应算子
面试官有时候会问:“Halcon里怎么实现Canny?”其实Halcon没有直接叫canny的算子,但edges_image选canny滤波器就是Canny。Sobel对应的是sobel_amp和sobel_dir,Laplacian对应的是laplace和laplace_of_gauss。
这里有个容易踩的坑:sobel_amp输出的边缘幅度图,边缘是粗的,你需要做非极大值抑制和滞后阈值才能得到细边缘。而edges_image内部已经帮你做了这些。所以如果你只是想要一个快速的边缘强度图做粗定位,用sobel_amp就够了;如果要精确轮廓,用edges_sub_pix。
Laplacian算子对噪声极其敏感,Halcon里的laplace_of_gauss相当于先高斯平滑再拉普拉斯,也就是LoG。面试里如果问“为什么不用纯Laplacian”,你要能说出它二阶导数对噪声放大严重,实际项目里几乎不单独用。
3.4 亚像素边缘提取的精度验证方法
面试官如果问“你怎么验证亚像素边缘的精度”,这是个加分题。我的做法是:用标定板或者已知尺寸的量块,提取边缘后拟合直线或圆,然后计算拟合残差的标准差。如果残差标准差在0.05像素以内,说明亚像素精度可信。
另一个方法是拿同一场景拍多张图,看边缘位置的重复性。工业现场更看重重复性而不是绝对精度,因为绝对精度可以通过标定补偿,但重复性差就没救了。edges_sub_pix的重复性一般比edges_image好一个数量级,这也是它贵的原因。
4. 阈值分割与形态学算子实战
4.1 threshold、binary_threshold、dyn_threshold的选用场景
这三个算子名字都带threshold,但适用场景完全不同。threshold是最基础的全局阈值,你给它一个灰度范围,它把范围内的像素选出来。缺点是光照不均的时候,固定范围根本覆盖不了整个图像。
binary_threshold是自动全局阈值,用的是Otsu或者最大熵方法。它适合背景和前景灰度分布比较分明的图像,比如白纸上的黑字。但它也是全局的,光照渐变的时候照样翻车。
dyn_threshold是局部动态阈值,它需要一个参考图像,通常是原图经过mean_image或者gauss_filter平滑后的背景估计。然后它比较原图和参考图的差值,超过Offset的像素被选出来。这个算子特别适合检测低对比度缺陷,比如金属表面的浅划痕、液晶屏的Mura。
面试里常问:“dyn_threshold的MaskSize怎么定?”我的经验是:MaskSize要大于缺陷宽度,但小于光照变化的尺度。比如缺陷宽度10像素,光照渐变尺度200像素,MaskSize取30到50比较合适。太小了背景估计不准,太大了缺陷会被当成背景。
4.2 形态学算子的结构元选择逻辑
Halcon的形态学算子有opening、closing、erosion、dilation,每个又有圆形、矩形、自定义结构元。面试官喜欢问:“去毛刺用哪个?填孔洞用哪个?”
去毛刺用opening,因为开运算是先腐蚀后膨胀,能去掉比结构元小的突出物。填孔洞用closing,先膨胀后腐蚀,能填补比结构元小的凹陷。结构元的大小要略大于毛刺或孔洞的尺寸。比如毛刺宽度3像素,用opening_circle半径2就够;孔洞直径5像素,用closing_circle半径3。
这里有个实操心得:先开后闭还是先闭后开,效果差别很大。如果图像同时有毛刺和孔洞,我一般先做一次opening去毛刺,再做一次closing填孔,但两次的结构元大小要分别调。如果反过来,闭运算可能把毛刺和背景连在一起,后面开运算就去不掉了。
4.3 connection与select_shape的黄金组合
connection是把连通域拆开,select_shape是按特征筛选。这个组合几乎是Halcon项目的标配。面试里会问:“select_shape支持哪些特征?你怎么选?”
常用的特征有area、width、height、circularity、rectangularity、compactness、convexity。选特征的原则是:选那些能把目标和非目标区分开的特征,而不是选越多越好。比如检测圆形焊点,circularity和area就够了;检测矩形芯片,rectangularity和width更直接。
有个坑要注意:select_shape的Operation参数有and和or。如果你同时设了area和circularity,用and表示两个条件都要满足,用or表示满足一个就行。很多人默认用and,结果把一些面积稍小但形状很圆的焊点漏掉了。实际项目里我经常先用or粗筛,再用and精筛。
4.4 形态学处理中的边界效应与规避
形态学算子处理图像边界的时候,默认会用边界像素填充,这会导致边界附近的区域被错误地腐蚀或膨胀。Halcon提供了border参数,可以设成mirrored、continued、cyclic或者指定灰度值。
我一般设成continued,也就是用边界像素的值继续延伸。这样边界附近的处理结果和内部一致。如果设成默认的mirrored,边界处会出现镜像伪影,检测靠近边界的缺陷时容易误判。
这个细节面试里很少有人主动提,但如果你能说出来,面试官会觉得你确实调过参数、踩过坑。
5. 模板匹配与测量算子进阶
5.1 形状匹配的创建与查找参数体系
create_shape_model和find_shape_model是Halcon里最核心的匹配算子。面试官会问:“NumLevels怎么定?AngleStart和AngleExtent怎么设?MinScore多少合适?”
NumLevels是金字塔层数。层数越多,搜索越快,但太多会导致顶层图像太小,特征丢失。一般设成auto或者根据模板大小手动定。模板直径100像素的话,4到5层比较合适。层数计算是每层缩小2倍,100像素到第5层就剩3像素了,再缩就没意义了。
AngleStart和AngleExtent是角度搜索范围。如果你知道目标旋转不会超过±30度,就设-0.52到1.05弧度,不要设全角度。全角度搜索慢不说,还容易匹配到错误方向。
MinScore是匹配分数阈值,范围0到1。设太高会漏检,设太低会误检。我一般从0.7开始试,根据误检和漏检情况调整。如果光照变化大,可以降到0.6;如果背景复杂,提到0.8。
5.2 测量算子的亚像素边缘对处理
measure_pos和measure_pairs是尺寸测量的核心。measure_pos找单个边缘,measure_pairs找边缘对,比如一条亮线两侧的两个边缘。
面试里常问:“measure_pairs的Transition参数怎么设?”它有positive、negative、all三个选项。positive表示从暗到亮,negative表示从亮到暗,all表示都找。如果你测的是黑色胶宽,胶两侧是亮背景,那就用all,因为一侧是暗到亮,另一侧是亮到暗。
measure_pairs还有个Select参数,可以选all、first、last。如果你只关心最外侧的边缘对,用first或last能减少干扰。
5.3 标定与测量结果的物理量转换
Halcon的测量算子输出的是像素坐标,要转成毫米需要标定。calibrate_cameras做相机标定,image_points_to_world_plane做像素到物理平面的转换。
面试里会问:“标定板要拍几张?姿态怎么摆?”一般拍10到15张,姿态要覆盖整个视野,倾斜角度在±30度以内。标定板要占视野的1/3到1/2,太小了标定精度差。
标定完之后,测量结果乘以标定得到的像素当量就是物理尺寸。但要注意,如果测量平面和标定平面不共面,会有透视误差。这时候要么用远心镜头,要么做平面校正。
5.4 模板匹配与测量的效率优化
工业现场对节拍要求很高,模板匹配和测量往往是瓶颈。优化手段有几个:一是减少金字塔层数,二是缩小搜索ROI,三是降低图像分辨率。
我做过一个项目,原本find_shape_model要80毫秒,后来把ROI从全图缩到1/4区域,降到25毫秒。再配合set_system里的border_shape_models参数,又降到18毫秒。这些优化手段面试的时候能说出来,说明你有实际项目经验。
6. 常见面试题速查与避坑指南
6.1 高频算子面试题速查表
| 问题 | 核心答案要点 | 常见错误回答 |
|---|---|---|
| edges_sub_pix和edges_image区别 | 亚像素vs像素级,封装vs可控中间过程 | 只说精度不同 |
| dyn_threshold适用场景 | 光照不均、低对比度缺陷 | 说成自动阈值 |
| opening和closing顺序 | 先去毛刺后填孔,结构元分别调 | 随便说一个顺序 |
| select_shape的and/or | and精筛,or粗筛 | 默认用and |
| shape_model的NumLevels | 金字塔层数,模板大小决定 | 说越大越好 |
| measure_pairs的Transition | positive/negative/all按边缘方向 | 说随便选 |
| 标定板拍摄数量 | 10-15张,覆盖视野 | 说3张就够 |
| 亚像素精度验证 | 拟合残差标准差、重复性 | 说看图像清楚就行 |
6.2 面试中容易翻车的细节
第一个坑是把Halcon当OpenCV答。有人问threshold,他答“就是二值化”,但Halcon的threshold可以选多个灰度范围,输出的是Region,不是二值图像。这个区别面试官很在意。
第二个坑是参数单位搞混。Halcon的角度单位是弧度,不是度。AngleStart设成30,实际是30弧度,相当于转了4圈多。这个错误我见过不止一次。
第三个坑是忽略图像类型。Halcon的threshold对byte图像和real图像行为不同。byte图像灰度0到255,real图像可以是任意浮点。如果你用real图像做threshold,范围要按实际灰度值设,不能照搬0到255。
6.3 从算子题延伸到项目架构题
面试官问完算子,往往会接着问:“如果让你设计一个完整的检测系统,你怎么架构?”这时候你要把算子题里展示的知识串起来。
我的回答框架一般是:先做图像采集和预处理(emphasize、illuminate),然后定位ROI(find_shape_model),接着在ROI内做分割(dyn_threshold、connection),再做特征筛选(select_shape),最后做测量或分类(measure_pairs、classify)。每个环节选什么算子、为什么选、参数怎么定,都要能说清楚。
这个框架不是固定的,但逻辑要自洽。面试官想听的是你有没有系统思维,而不是零散地知道几个算子。
6.4 独家避坑经验三条
第一条:不要迷信自动参数。Halcon很多算子有auto选项,比如edges_sub_pix的Alpha可以设auto,但自动算出来的不一定适合你的场景。我一般先用auto跑一遍看效果,然后手动微调。
第二条:XLD轮廓比Region更适合测量。Region是像素级,XLD是亚像素级。做尺寸测量一定要用XLD,不要用Region的smallest_rectangle1,那个精度不够。
第三条:多核并行要手动开。Halcon默认可能只用单核,set_system('parallelize_operators', 'true')可以开启算子级并行。但要注意,不是所有算子都支持并行,而且并行会占更多内存。我一般在大图像处理时才开。
7. 从面试题到实际项目的算子组合思路
7.1 一个完整检测项目的算子链路复盘
拿一个我做过的连接器PIN针检测项目来说。图像是背光拍摄,PIN针是黑色轮廓,背景是亮场。目标是检测PIN针数量、间距、是否歪斜。
第一步用threshold做粗分割,因为背光图像对比度很高,全局阈值就够。第二步用connection拆连通域,第三步用select_shape按面积和矩形度筛选出PIN针。第四步用sort_region按X坐标排序,第五步用smallest_rectangle2得到每个PIN针的角度和中心。最后用tuple_sort和数组运算算间距。
这个链路里没有用边缘提取,因为背光图像边缘已经很清晰了,用Region分析更快更稳。面试的时候如果你能根据图像特点选择最简链路,而不是堆砌算子,面试官会高看一眼。
7.2 算子选型的决策树
我总结了一个简单的决策树,面试的时候可以按这个思路回答:
- 图像对比度高、光照均匀:
threshold+connection+select_shape - 图像光照不均、低对比度:
mean_image+dyn_threshold+connection - 需要亚像素尺寸:
edges_sub_pix+fit_line_contour_xld或measure_pairs - 目标有旋转和缩放:
create_shape_model+find_shape_model - 缺陷面积小且形状不规则:
blob分析或texture_laws - 需要分类:
create_dl_model+apply_dl_model或传统classify
这个决策树不是绝对的,但能帮你快速定位方向。面试的时候先判断图像特点,再选算子,逻辑就顺了。
7.3 性能瓶颈的算子级优化
Halcon项目跑得慢,八成是算子选错了或者参数没调好。我遇到过最典型的性能问题是find_shape_model全图搜索。优化方法是先用threshold或blob粗定位,把ROI缩小到目标可能出现的区域,再在ROI内做匹配。
另一个瓶颈是edges_sub_pix在大图上跑。优化方法是先降采样,粗定位后再在原图上做亚像素提取。Halcon的zoom_image_factor可以做降采样,reduce_domain可以缩小处理区域。
还有个技巧是用set_system('clip_region', 'true')让算子只处理Region内的像素,能省不少时间。
7.4 面试中如何展示算子之外的工程能力
算子题答得好只是及格,真正加分的是展示工程能力。比如面试官问“你怎么保证检测稳定性”,你可以说:我会做GR&R分析,用同一批样品重复测30次,看均值和标准差的波动;我会做光照老化测试,连续跑8小时看灰度漂移;我会做边界样本测试,把合格品和不良品混在一起看误判率。
这些内容超出了算子本身,但面试官会觉得你是个能扛项目的人。Halcon算子只是工具,真正值钱的是用工具解决实际问题的能力。
8. 深度学习算子与传统算子的面试融合点
8.1 Halcon深度学习的算子体系
Halcon从18版开始加入深度学习,核心算子是read_dl_model、apply_dl_model、train_dl_model。面试里如果问深度学习,一般不会问太深,但会问“什么时候用深度学习,什么时候用传统算子”。
我的回答是:缺陷形态固定、规则明确的用传统算子,比如尺寸测量、定位、计数;缺陷形态多变、难以用规则描述的用深度学习,比如表面划痕、纹理异常、复杂背景下的目标检测。深度学习不是替代传统算子,而是补充。
8.2 传统算子与深度学习的混合链路
实际项目里经常是混合的。比如先用find_shape_model定位产品,再用apply_dl_model做缺陷分类。或者先用dyn_threshold粗筛可疑区域,再用深度学习精判。
面试里如果能说出这种混合链路,说明你不是盲目追新,而是根据场景选工具。Halcon的深度学习推理速度在GPU上还可以,但在CPU上比较慢,所以定位环节还是用传统算子更快。
8.3 面试中深度学习问题的回答边界
如果面试官问深度学习模型结构、训练技巧,你可以适当展开,但不要跑太远。Halcon的深度学习封装程度很高,你不需要自己搭网络,重点是会用read_dl_model加载预训练模型,会用apply_dl_model做推理,会看DLResult里的置信度。
如果面试官问“你怎么标注数据”,你可以说用Halcon的labeling工具或者第三方工具,标注时要保证类别平衡,每个类别至少几百张图。这些是实操经验,比背网络结构更有用。
9. 面试之外的算子学习路径建议
9.1 官方手册的正确打开方式
Halcon算子中文手册是必备的,但不要从头到尾看。我的方法是:遇到问题先查手册,看算子的Signature、参数说明、Example。手册里的Example特别有价值,很多参数组合直接抄就能用。
手册里每个算子都有“See also”和“Possible predecessors/successors”,这个链路提示很有用。比如你查dyn_threshold,它会告诉你前面通常接mean_image,后面通常接connection。顺着这个链路学,比孤立地背算子高效得多。
9.2 用实际项目倒逼算子学习
光学算子最快的方法不是刷题,而是接一个真实项目。哪怕是个小项目,比如硬币计数、二维码定位、颜色分拣,你从头做一遍,遇到问题查手册、调参数、看效果,这个过程比看十遍教程都管用。
我建议新手从blob分析开始,因为它的链路最清晰:threshold→connection→select_shape→area_center。把这个链路跑通,再学边缘提取、模板匹配、测量,循序渐进。
9.3 建立自己的算子笔记库
我有个习惯,每用一个新算子,就在笔记里记下:算子名、用途、关键参数、我调过的参数范围、效果对比、踩过的坑。时间长了,这就是你自己的面试题库和项目参考手册。
比如edges_sub_pix我记的是:Alpha=1.0到3.0,Filter='canny'或'deriche2',低对比度用'canny',高噪声用'deriche2'。这种笔记面试前翻一遍,比看任何教程都管用。
9.4 面试前一周的突击策略
如果面试在即,我建议按这个优先级复习:第一天过边缘提取和阈值分割,第二天过形态学和形状选择,第三天过模板匹配和测量,第四天过标定和深度学习,第五天把做过的项目重新梳理一遍,第六天模拟面试自问自答,第七天休息。
复习的时候不要只看,要动手。打开Halcon,随便找张图,把每个算子跑一遍,看参数变化的效果。肌肉记忆比脑子记忆靠谱。
10. 写在最后:算子只是起点
Halcon算子面试题看起来是在考工具,实际上是在考你对图像处理的理解、对工业场景的认知、对工程问题的解决能力。算子会过时,Halcon版本会更新,但图像处理的底层逻辑和工程思维不会变。
我见过太多人把Halcon当黑盒,调参靠试,出了问题就换算子。这样做的项目,换个场景就崩。真正的高手是理解每个算子背后的数学原理和物理意义,知道什么时候该用、什么时候不该用、参数为什么这么定。
如果你正在准备Halcon相关的面试,我的建议是:别背题,去理解。把每个高频算子用自己的话讲一遍,讲给不懂的人听,如果他能听懂,说明你真懂了。面试的时候,面试官能听出来你是真懂还是假懂。
最后分享一个我自己的小习惯:每次面试完,不管过没过,我都会把被问到的算子题记下来,回去查手册、做实验,把答案补完整。几年下来,这份笔记成了我最宝贵的资料。面试是最好的学习机会,别浪费。