更新 src/PBBiology/include/PBImageProcess.h

修改魔术棒功能

Signed-off-by: maxbang <946568130@qq.com>
This commit is contained in:
maxbang 2024-12-17 03:25:44 -05:00
parent d16483caf1
commit 4fcc93856e

View File

@ -10,28 +10,28 @@ using namespace std;
using namespace cv; using namespace cv;
//生长函数 //生长函数
int RegionGrow(cv::Mat& src, cv::Mat& matDst, cv::Point2i pt, int th); int RegionGrow(cv::Mat& src, cv::Mat& matDst, cv::Point2i pt, int th);
//最小二乘法取圆 //最小二乘法取圆
void FitCircleCenter(vector<Point>& Circle_Data, Point2f& Circle_Center, float& Circle_R); void FitCircleCenter(vector<Point>& Circle_Data, Point2f& Circle_Center, float& Circle_R);
//最优最小二乘法取圆 //最优最小二乘法取圆
int RANSAC_FitCircleCenter(vector<Point>& Circle_Data, Point2f& Circle_Center, float& Circle_R, float thresh); int RANSAC_FitCircleCenter(vector<Point>& Circle_Data, Point2f& Circle_Center, float& Circle_R, float thresh);
//生长最优最小二乘法取圆 //生长最优最小二乘法取圆
void RANSAC_FitCircleCenter_with_throw(vector<Point>& Circle_Data, Point2f& Circle_Center, float& Circle_R); void RANSAC_FitCircleCenter_with_throw(vector<Point>& Circle_Data, Point2f& Circle_Center, float& Circle_R);
//二值化阈值计算 //二值化阈值计算
int IJIsoData(int* data); int IJIsoData(int* data);
int defaultIsoData(int* data); int defaultIsoData(int* data);
////根据mask渲染图像 ////根据mask渲染图像
////src、mask输入CV_16UC1图像 ////src、mask输入CV_16UC1图像
////dst输出CV_8UC3彩色图像 ////dst输出CV_8UC3彩色图像
////max、minmask像素选择渲染的最大最小值 ////max、minmask像素选择渲染的最大最小值
////color颜色类型 ////color颜色类型
////reverse是否反转颜色 ////reverse是否反转颜色
//int render_mask_image(Mat src, Mat mask, Mat dst, float max, float min, ColorTable color, bool reverse); //int render_mask_image(Mat src, Mat mask, Mat dst, float max, float min, ColorTable color, bool reverse);
// //
///// <summary> ///// <summary>
///// 融合两张图 ///// 融合两张图
///// </summary> ///// </summary>
///// <param name="src"></param> ///// <param name="src"></param>
///// <param name="mark"></param> ///// <param name="mark"></param>
@ -40,41 +40,41 @@ int defaultIsoData(int* data);
///// <returns></returns> ///// <returns></returns>
//int blendImages(const Mat& src, const Mat& mark, const Mat& dst, double alpha); //int blendImages(const Mat& src, const Mat& mark, const Mat& dst, double alpha);
////int render_image(Mat src, Mat& dst, float max, float min, ColorTable color, bool reverse); ////int render_image(Mat src, Mat& dst, float max, float min, ColorTable color, bool reverse);
////合成渲染图像src是老鼠图pseudoImg是光子渲染图brightness_offset亮度contrast_factor对比度contrast_factor透明度返回融合图 ////合成渲染图像src是老鼠图pseudoImg是光子渲染图brightness_offset亮度contrast_factor对比度contrast_factor透明度返回融合图
////brightness_offset:亮度偏移范围 -255 到 +255 ////brightness_offset:亮度偏移范围 -255 到 +255
////contrast_factor:对比度因子范围 0.1 到 3.01.0为不变) ////contrast_factor:对比度因子范围 0.1 到 3.01.0为不变)
////opacity_factor:透明度因子范围 0 到 10为透明1为不透明 ////opacity_factor:透明度因子范围 0 到 10为透明1为不透明
//Mat render_mask_image(Mat src, Mat pseudoImg, int brightness_offset, double contrast_factor, double opacity_factor); //Mat render_mask_image(Mat src, Mat pseudoImg, int brightness_offset, double contrast_factor, double opacity_factor);
////获取颜色表color颜色类型bgr_tab是有空间的颜色表指针reverse是否反转 ////获取颜色表color颜色类型bgr_tab是有空间的颜色表指针reverse是否反转
//void get_bgr_tab(ColorTable color, uint8_t(*bgr_tab)[3], bool reverse); //void get_bgr_tab(ColorTable color, uint8_t(*bgr_tab)[3], bool reverse);
////生产颜色表的直条图w=200,h_color=10是一个颜色高bgr_tab是有空间的颜色表指针 ////生产颜色表的直条图w=200,h_color=10是一个颜色高bgr_tab是有空间的颜色表指针
//Mat bgr_tab_image(int w, int h_onecolor, uint8_t(*bgr_tab)[3]); //Mat bgr_tab_image(int w, int h_onecolor, uint8_t(*bgr_tab)[3]);
//int pseudo_color_processing(Mat src, Mat dst, float max, float min, uint8_t(*bgr_tab)[3]); //int pseudo_color_processing(Mat src, Mat dst, float max, float min, uint8_t(*bgr_tab)[3]);
// //
//// 获得选中区域的光子数 //// 获得选中区域的光子数
//PseudoInfo get_pseudo_info(Mat src,int x,int y,int w,int h,float max,float min); //PseudoInfo get_pseudo_info(Mat src,int x,int y,int w,int h,float max,float min);
// //
//Mat bgr_scale_image(Mat src, float maxVal, float minVal); //Mat bgr_scale_image(Mat src, float maxVal, float minVal);
//合成渲染图像src是老鼠图pseudoImg是光子渲染图brightness_offset亮度contrast_factor对比度contrast_factor透明度返回融合图 //合成渲染图像src是老鼠图pseudoImg是光子渲染图brightness_offset亮度contrast_factor对比度contrast_factor透明度返回融合图
//brightness_offset:亮度偏移范围 -255 到 +255 //brightness_offset:亮度偏移范围 -255 到 +255
//contrast_factor:对比度因子范围 0.1 到 3.01.0为不变) //contrast_factor:对比度因子范围 0.1 到 3.01.0为不变)
//opacity_factor:透明度因子范围 0 到 10为透明1为不透明 //opacity_factor:透明度因子范围 0 到 10为透明1为不透明
Mat render_mask_image(Mat src, Mat pseudoImg, int brightness_offset, double contrast_factor, double opacity_factor); Mat render_mask_image(Mat src, Mat pseudoImg, int brightness_offset, double contrast_factor, double opacity_factor);
//获取颜色表color颜色类型bgr_tab是有空间的颜色表指针reverse是否反转 //获取颜色表color颜色类型bgr_tab是有空间的颜色表指针reverse是否反转
void get_bgr_tab(ColorTable color, uint8_t(*bgr_tab)[3], bool reverse); void get_bgr_tab(ColorTable color, uint8_t(*bgr_tab)[3], bool reverse);
//生产颜色表的直条图w=200,h_color=10是一个颜色高bgr_tab是有空间的颜色表指针 //生产颜色表的直条图w=200,h_color=10是一个颜色高bgr_tab是有空间的颜色表指针
Mat bgr_tab_image(int w, int h_onecolor, uint8_t(*bgr_tab)[3]); Mat bgr_tab_image(int w, int h_onecolor, uint8_t(*bgr_tab)[3]);
//统计计算结果src是输入图像16bit的count图或者float的光子计算结果图都可以输入mask是掩膜图max和min是设定的大小 //统计计算结果src是输入图像16bit的count图或者float的光子计算结果图都可以输入mask是掩膜图max和min是设定的大小
PseudoInfo get_pseudo_info(Mat src, Mat mask, float max, float min); PseudoInfo get_pseudo_info(Mat src, Mat mask, float max, float min);
//生成光子渲染图src是渲染前图dst是渲染后图max和min是设定的大小bgr_tab是有空间的颜色表指针 //生成光子渲染图src是渲染前图dst是渲染后图max和min是设定的大小bgr_tab是有空间的颜色表指针
int pseudo_color_processing(Mat src, Mat dst, float max, float min, uint8_t(*bgr_tab)[3]); int pseudo_color_processing(Mat src, Mat dst, float max, float min, uint8_t(*bgr_tab)[3]);
//生成带标尺的直条图src是bgr_tab_image生成的图maxVal和minVal是设定的大小scientific_flag是否科学计数法 //生成带标尺的直条图src是bgr_tab_image生成的图maxVal和minVal是设定的大小scientific_flag是否科学计数法
Mat bgr_scale_image(Mat src, float maxVal, float minVal, int scientific_flag); Mat bgr_scale_image(Mat src, float maxVal, float minVal, int scientific_flag);
//获取光子计算图src输入渲染前原始图sec是拍摄秒数Wcm=27是实际宽Hcm=18是实际高sr是默认1.0返回CV_32FC1的浮点光子结果图 //获取光子计算图src输入渲染前原始图sec是拍摄秒数Wcm=27是实际宽Hcm=18是实际高sr是默认1.0返回CV_32FC1的浮点光子结果图
Mat get_photon_image(Mat src, float sec, float Wcm, float Hcm, float sr); Mat get_photon_image(Mat src, float sec, float Wcm, float Hcm, float sr);
//魔术棒功能src是处理成8bit的图x,y是点击位置的坐标 //魔术棒功能src是处理成8bit的图x,y是点击位置的坐标max和min是设定的大小,max和min需要注意除以256使用0-255数据
//th是设定的像素差10或20之类的可以实际调一下就是和点击位置的像素差在th范围内的连在一起的像素,都会被框选 //点击位置的像素差在[min,max]范围内的连在一起的像素,都会被框选
Mat get_magic_wand_image(Mat src, int x, int y, int th); Mat get_magic_wand_image(Mat src,int x,int y,float max,float min);