空域法(包括灰度变化、直方图修正、平滑、锐化、色彩增强等)、频域法(包括低通滤波、高频高提升滤波、同态滤波等)
改善视觉效果,提高图像清晰度;使图像转换成更适合人/机器分析处理的图形
空域平滑法(邻域/局部平滑法、阈值平均法、加权平均法、模板平滑法、多图像平均法)、频域平滑法(频域低通滤波法、理想低通滤波器ILPF、Butterworth低通滤波器BLPF、指数低通滤波器ELPF、梯形低通滤波器TLPF、中值滤波法/非线性平滑滤波法、)
空域微差分法(空域锐化法、拉普拉斯锐化法、模板锐化法)、频域高提升滤波法(理想高通滤波器、Butterworth高通滤波器、指数高通滤波器、梯形高通滤波器)
平滑锐化时,图像边界不处理;一般处理时仅对原图像进行处理;先平滑后锐化。
图像增强过程中不需要分析图像降质原因,处理后也不一定逼真原图像。
1、mean_image()+scale_image_max()+emphasize()[除噪声]
2、exp_image()+scale_image_max()[使黑色为0,白色为255,边缘清晰,但有损图像]
3、log_image()+scale_image_max()+scale_image_range()+scale_image_max()+emphasize()[使黑色更黑,白色更白]
4、illuminate()+emphasize()[使黑白分明,图像无损]
5、invert_image()+scale_image_range()+invert_image()+emphasize()+mean_image()+scale_image_max()+emphasize()[使黑白分明,白色255,黑色0,但有噪声且边缘不好]
7、coherence_enhancing_diff()+emphasize()[边缘清晰化,运行速度极慢]
8、mean_curvature_flow()+emphasize()[是像素平均化,运行时间慢]
9、fill_interlace()+shock_filter()[边缘非常清晰,但是图像有损坏,运行速度慢]
10、gen_image_const()+get_image_size()+gen_circle()+reduce_domain()+gray_opening()+emphasize()[清除噪声,使黑色更黑]
11、gen_image_const()+get_image_size()+gen_circle()+reduce_domain()+gray_closing()+emphasize()[清除噪声,使白色更白]
12、gray_range_rect()+exp_image()+log_image()+scale_image_max()+threshold()+connection()[可得完整XLD]
13、add_image()+emphasize()[清除噪声,白色更白]
14、gen_image_const()+get_image_size()+Illuminate()+sub_image()+emphasize()[清除噪声,白色更白,黑色更黑]
人脸识别:三步走解析人脸识别套路 - 简书
相机镜头测试:镜头分辨率及MTF测试
图像的仿射变换:图像的仿射变换 - 知乎
透视变换逻辑:【图像处理】透视变换 Perspective Transformation_verilog 图像透视变换-CSDN博客
平移、缩放、旋转、仿射、透视等等。图像变换是建立在矩阵运算基础上的,通过矩阵运算可以很快的找到不同图像的对应关系。理解变换的原理需要理解变换的构造方法以及矩阵的运算方法。
是从一个二维坐标系变换到另一个二维坐标系,属于线性变换。通过已知3对坐标点可以求得变换矩阵。
是从一个二维坐标系变换到一个三维坐标系,属于非线性变换。通过已知4对坐标点可以求得变换矩阵。
相机成像的过程实际就是将世界坐标系的点,转换到相机坐标系,投影得到图像坐标系,进而转化为像素坐标系的过程。而由于透镜精度和工艺会引入畸变(所谓畸变,就是指在世界坐标系中的直线转化到其他坐标系不在是直线),从而导致失真,为了解决这个问题,从而引入了相机畸变校正模型。
https://www.cnblogs.com/xingyuanzier/p/12951150.html
1.?t := [t1,t2] ? ? t1,t2连接成新的数组 ? ? ? ? ? ? ? ?
2.?i := |t| ? ? ? ? 得到数组长度 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tuple_length
3.?v := t[i] ? ? ? ?选取第i个元素0<= i < |t| ? ? ? ? ? ? ? ? ? ? ?tuple_select
4.?t := t[i1:i2] ? ?选取i1到i1的元素 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tuple_select_range
5.?t := subset(t,i) 选取数组t中的第i个元素 ? ? ? ? ? ? ? ? ? ? ? ?tuple_select
6.?t := remove(t,i) 去除数组t中的第i个元素 ? ? ? ? ? ? ? ? ? ? ? ?tuple_remove
7.?i := find(t1,t2) 找到t2数组在t1数组中出现位置索引
8.?(or -1 if no match) ? ? ? ? ? ? ? ? ? ? ? ? ?tuple_find
9.?t := uniq(t) ? ? 在t数组中把连续相同的值只保留一个 ? ? ? ? ? ? tuple_uniq
11.?concat_obj(连接两个标志性的对象元组,将数据传递给另外一个对象)
12.?tuple_regexp_select(选择匹配正则表达式的元组元素)
1.?polar_trans_image_ext(将环形圆弧转换为极坐标)(inspect_bottle_mouth.hdev)
2.?polar_trans_region_inv(将极坐标中的一个区域变换回笛卡尔坐标)(inspect_bottle_mouth.hdev)
4.?list_image_files(获取给定路径下的所有文件)
5.max_image(计算两个图像像素最大值)
9.?tile_images(将多个图像放到一个平铺放大图中)
1.?rgb1_to_gray(将RGB图像转换为灰度图像)
2.?trans_from_rgb(将图像从RGB颜色空间转换为任意颜色空间)
3.?trans_from_rgb(将任意颜色空间转换为RGB颜色空间)
1.close_edges(使用边缘震幅图像关闭边缘间隙,尝试修复完整的XLD)
2.?close_edges_length(使用边缘震幅图像关闭边缘间隙,尝试修复完整的XLD)
5.?frei_amp(使用frei-chen运算检测图像XLD)
6.?frei_dir(使用frei-chen运算检测图像XLD)
8.?kirsch_amp(使用kirsch算子检测图像XLD)
9.?kirsch_dir(使用kirsch算子检测图像XLD)
10.?laplace(使用laplace算子检测图像XLD)
11.?prewitt_amp(使用prewitt算子检测图像XLD)
12.?roberts(使用roberts算子检测图像XLD)
13.?sobel_amp(使用sobel算子检测图像XLD)
1.?coherence_enhancing_diff(一致性扩散增强)
4.?exp_image(图像指数变换,增强亮部像素值,使黑色更黑,搭配scale_image_max算子一起使用)
7.?log_image(图像对数变换,增强暗部像素值,使白色更白,搭配scale_image_max算子一起使用)
8.?mean_curvature_flow(江南平均曲率流应用于图像,减小图像噪声)
9.?scale_image_max(将最小、最大灰度值变换为0,255)(运用之前,使用mean_image平滑去除小噪声)
10.?scale_image_range(将范围内像素增强)
1.?convol_fft(在频率域中使用筛选器对图像进行卷积)
1.?hom_mat2d_identity(创建二位变换矩阵)
2.?affine_trans_region(区域任意变换)
3.?vector_angle_to_rigid(刚性仿射变换)
4.?hom_mat2d_translate(平移二维变换矩阵)
11.?polar_trans_region , polar_trans_region_Inv(极坐标与笛卡尔坐标互转)
1.?mean_image(均值滤波,值选择公式:2D+1;一般与dyn_threshold共同使用)
3.?draw_rectangle1(根据坐标系,在图像中画一个矩形)
7.?gen_empty_region(生成一个空白ROI)
1.?attach_drawing_object_to_window(将现有绘画对象附加到窗口)
2.?attach_background_to_window(将背景图附加到窗口)
3.?clear_drawing_object(清除绘制对象)
4.?create_drawing_object_circle_sector(创建一个可交互的扇形对象)
5.?create_drawing_object_rectangle2(创建一个可交互移动的矩形对象)
6.?create_drawing_object_text(创建一个可交互移动的文本对象)
7.?perform_measurement(计算绘画对象与图像的交点)
8.?display_results(将点坐标显示到窗口中)
9.?detach_background_from_window(从窗口分离背景图)
10.?detach_drawing_object_from_window(从窗口分离绘画对象)
11.?set_drawing_object_params(设置绘画对象的颜色)
5.?disp_ellipse(在窗口显示椭圆)
4.?dev_open_file_dialog(打开文件选择对话框)
13.?create_bar_code_model(创建条码识别模型)
14.?decode_bar_code_rectangle2(在矩形框内识别条码)
15.?find_bar_code(检测和读取图像中的条码)
16.?get_bar_code_object(访问条码的标志对象,即将条码用绿色框框选中)
17.?get_bar_code_result(获取识别条码字符串)
18.?get_bar_code_param(获取条码参数)
19.?set_bar_code_param(设置条码参数)
2.?set_framegrabber_param(设置相机参数,ExposureTime是曝光时间,GainRaw是曝光增益)
5.?image_to_channels(将多通道图像转换为单通道图像)
3.?region_to_mean(使用均值灰度值绘画图像)
5.?rectangle1_domain(根据矩形减少区域)
2.?histo_to_thresh(根据灰度直方图确定阈值)
将一个图像的灰度值覆盖到另一个图像中)
2.?overpaint_region(将一个ROI覆盖到图像中)
3.?paint_gray(将一个图像的灰度值绘制到另一个图像中)(用途:将局部图像灰度强/弱化,再重新绘画到原图像)
2.?closing(关闭区域)(先膨胀后收缩)(用于填坑)
3.?closing_circle(使用圆形结构元素关闭区域)
4.?closing_rectangle1(使用矩形关闭区域)
6.dilation_rectangle1
10.?erosion_rectangle1(使用矩形侵蚀区域)
13.?opening_rectangle1(用矩形打开一个区域)
5.?gen_region_histo(将直方图转换成区域)
4.?inner_rectangle1(创建区域内部最大的矩形)
6.?select_shape_std(选择区域内指定形状)
7.?select_shape_xld(根据形状特征选择轮廓或者多边形)
1.?affine_trans_region(区域任意变换)
1.?complement(获取补充区域,即获取选中区域以外的所有区域,区域取反)
3.?intersection(计算两个区域的交集,区域相交)
1.?connection(计算区域连接的组件,即将区域打散成区域数组)
6.?sort_region(根据区域相对位置对区域进行分类)
1.?auto_threshold(使用由直方图确定的阈值分割图像)
2.?binary_threshold(二值化阈值分割图像)
4.?histo_to_thresh(根据直方图获取灰度阈值)
5.?local_threshold(使用局部阈值分割图像)
7.?threshold_sub_pix(以子像素精度提取图像的水平交叉)
8.?fast_threshold(使用全局阈值对图像进行快速阈值化;与threshold相同,速度更快一些)
4.?distance_lr(平面中,计算直线到区域的最长最短距离)
1.?area_center_xld(获取XLD的中心坐标和面积)
2.?height_width_ratio_xld(获取XLD的长和宽)
3.?select_shape_xld(根据要求筛选XLD)
4.?smallest_rectangle1_xld(获取XLD内最小的矩形XLD)
1.?gen_contour_region_xld(根据ROI生成XLD)
2.?gen_region_contour_xld(根据XLD生成ROI)