大家好,今天来为大家解答深度学习图像处理技术详解(第三部分)这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
@paraminputimage 输入图像
@paramthresh阈值
@parammaxval 最大值
@paramtype函数类
@return 返回图片
*/
+(UIImage*)opencvThreshold:(UIImage*)inputimage thresh:(double)thresh maxval:(double)maxval type:(int)type{
//转换为Mat对象
MatimagrSrc;
UIImageToMat(inputimage, imagrSrc);
//Threshold需要先将图像转为灰度图。它必须是灰度图像。
马蒂玛格·格雷;
cvtColor(imagrSrc, imagrGray,COLOR_BGR2GRAY);
Matthreshold图像;
/*
图像包括目标对象、背景和噪声。为了直接从多值数字图像中提取目标物体,最常见的方法是设置一个全局阈值T,并利用T将图像数据分为两部分:一组大于T的像素和一组小于T的像素大于T的像素组的像素值设置为白色(或黑色),小于T的像素组的像素值设置为黑色(或白色)。
@param src 输入必须是单通道灰度图像
@参数dst
@param 阈值阈值
@param maxval 定义为255
类型。
@param 类型cv:ThresholdTypes 类型
阈值(输入数组src,输出数组dst,
双阈值、双maxval、int 类型)
*/
阈值(imagrGray,阈值图像,阈值,maxval,CV_THRESH_BINARY_INV);
returnMatToUIImage(thresholdImage);
}
自适应阈值处理
+(UIImage*)opencvAdaptiveThreshold:(UIImage*)inputimage{
//转换为Mat对象
MatimagrSrc;
UIImageToMat(inputimage, imagrSrc);
//Threshold需要先将图像转为灰度图
马蒂玛格·格雷;
cvtColor(imagrSrc, imagrGray,COLOR_BGR2GRAY);
Mat 阈值图像;
/*
cv:adaptiveThreshold()支持两种自适应方法,即cv:ADAPTIVE_THRESH_MEAN_C(平均值)和cv:ADAPTIVE_THRESH_GAUSSIAN_C(高斯)。在这两种情况下,自适应阈值T(x, y)。通过计算每个像素周围bxb大小的像素块的加权平均值并减去常数C得到。其中,b由blockSize给定,大小必须为奇数;如果采用平均法,则所有像素周围的权重相同;如果采用高斯法,则(x,y)周围像素的权重是根据它们与中心点的距离通过高斯方程得到的。
@param src 8位单通道图像,即灰度图像
@param dst 的大小和通道与src 相同。
@param maxValue 最大值为255
@param AdaptiveMethod cv:AdaptiveThresholdTypes
@param阈值类型必须是THRESH_BINARY或THRESH_BINARY_INV,cv:ThresholdTypes。
@param blockSize 必须是奇数且大于1
@param C 正数或负数。
自适应阈值(cv:InputArray src,cv:OutputArray dst,双maxValue,int自适应方法,int阈值类型,int blockSize,双C)
*/
自适应阈值(imagrGray,thresholdImage,255,ADAPTIVE_THRESH_GAUSSIAN_C,THRESH_BINARY,25,10);
returnMatToUIImage(thresholdImage);
}
腐蚀
+(UIImage*)opencvErode:(UIImage*)输入图像宽度:(int)宽度高度:(int)高度{
//转换为Mat对象
MatimagrSrc;
UIImageToMat(inputimage, imagrSrc);
如果(宽度2){
宽度=2;
高度=2;
}
/*
getStructuringElement 函数返回指定形状和大小的结构元素。
@param shape shape cv:MorphShapes 矩形(包括直线)MORPH_RECT、椭圆形(包括圆形)MORPH_RECT 十字形状MORPH_CROSS
@param ksize size.width height 必须大于2
@param锚点默认点(-1,-1)
Mat getStructuringElement(int shape, Size ksize, 点锚点=Point(-1,-1));
*/
Mat 元素=getStructuringElement(MORPH_RECT, Size2i(宽度, 高度),Point2i(1,1));
马特斯特;
erode(imagrSrc, dst, element);//腐蚀操作
returnMatToUIImage(dst);
}
均值滤波器
+(UIImage *)opencvblur:(UIImage *)输入图像大小:(int)大小{
//转换为Mat对象
MatimagrSrc;
UIImageToMat(inputimage, imagrSrc);
//进行转换,否则会崩溃
int值=size1?3:size;
//输出图像
垫dst;
/*
@param src 它可以有任意数量的通道,但深度必须是CV_8U、CV_16U、CV_16S、CV_32F 或CV_64F。
@参数dst
@param ksize 定义过滤器的大小。例如,Size(3,3) 必须大于0
@paramanchor指定锚点位置(平滑点)。如果为负值,则将核的中心作为锚点。可省略,默认Point(-1,-1)
@param borderType 推断边缘像素,通常为默认值BORDER_DEFAULT,参见cv:BorderTypes
@sa
模糊(cv:InputArray src,cv:OutputArray dst,cv:Size ksize)
*/
模糊(imagrSrc,dst,Size2i(值,值));
returnMatToUIImage(dst);
}
【深度学习图像处理技术详解(第三部分)】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于看到第三篇了,感觉可以学到更多有意思的东西!
有18位网友表示赞同!
希望这篇文章能详细讲解一些常用的图像处理函数,比如滤波,边缘检测这些。
有12位网友表示赞同!
我的项目也用到openCV,期待学习到更高级的函数使用技巧!
有7位网友表示赞同!
最近在研究计算机视觉方面的知识,这个系列文章挺好用的参考材料!
有18位网友表示赞同!
能不能也分享一些实际应用案例呢?更直观一点能理解得更快
有12位网友表示赞同!
我还在学习opencv的基本语法,这篇文章对我是再合适不过了!
有17位网友表示赞同!
哪个函数最常用啊?希望这篇文章能够介绍一下哪些是实用的。
有18位网友表示赞同!
看完之前的文章以后感觉openCV真是太厉害了,现在这个第三篇一定可以学到更高深的知识!
有9位网友表示赞同!
学习图像处理一直是我的兴趣点,期待这篇文章能有所帮助!
有7位网友表示赞同!
我希望能看到一些关于颜色变换和形态学的讲解,这些都很实用。
有7位网友表示赞同!
以前用的openCV有点儿生分,希望这篇能让我更了解它的功能!
有15位网友表示赞同!
学习新技术总要循序渐进的,这个系列文章真是太棒了!
有15位网友表示赞同!
期待作者能够分享更多关于openCV的功能和应用场景!
有12位网友表示赞同!
这篇文章或许能帮到我在课设上遇到的困难!
有16位网友表示赞同!
我的python水平还不太行,希望这篇文章可以讲解得比较详细易懂!
有6位网友表示赞同!
看完前面的文章我已经感觉自己离计算机视觉越来越近了!
有19位网友表示赞同!
如果能搭配代码示例会更好理解,对初学者非常有帮助!
有13位网友表示赞同!
学习opencv可以让我更好地实现我的图像处理目标!
有5位网友表示赞同!
希望这篇文章能够解答我关于openCV的一些疑问!
有6位网友表示赞同!