OpenCV图像效果的基本处理

最近一段时间再研究图像技术,所以抽抽时间写写心得。

说到OpenCV 需要说的一个东西必须要说的就是Map的自定义对象存储图像,该图像保存了行数,列数,数据等能唯一标识该图像的信息,并且能在需要的时候重新创建图像。

使用OpenGL 需要在设备上安装opencv管理器的应用 (找到适配的CPU 安装上去就OK) 如果不想使用OpenCV的管理器 也可以自定义JNI  虽然APK的大小会有显著的增加 但是 对于用户来说  用这个app 还需要下载管理器 不免得繁杂 本篇使用的OpenCV的管理器 后面有时间再更新JNI的实现 

下面是android opencv的管理器图

页面逻辑 在activity进入运行状态的时候检测OpenCV是否成功配置

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION,this,mOpenCVCallBacl);

mOpenCVCallBacl为OpenCV管理器安装的回调函数


均值模糊 blur()

Bitmap  mBitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.yr)).getBitmap();//获取本地的图片

Mat src =new Mat(mBitmap.getHeight(), mBitmap.getWidth(), CvType.CV_8UC4);//以位图加载图像 并将其转换为Mat以供处理的代码

Utils.bitmapToMat(mBitmap, src);

我们使用OpenCV提供的Buur()函数对对象做均值模糊  核用6*6(图片太小 看的清楚一点)

Imgproc.blur(src, src, new Size(6, 6));//均值模糊

最后我们需要一张改变后的图显示处理的效果,从Mat对象中获取就OK

Bitmap change = Bitmap.createBitmap(src.cols(), src.rows(), Bitmap.Config.ARGB_8888);

Utils.matToBitmap(src, change);

change就是种均值模糊后的图像 (下面附上效果图)


高斯模糊 GaussianBlur()

高斯模糊的效果很常见 也有人叫它毛玻璃  也可以借助其他的库  本人写过Java的处理 但是耗时远远比JNI的的要大很多 因为Java跟c或者c++的效率自然是比不了 。目前我认为直接jni实现处理的效果图 返回图位是最快的, 回归正题。

大体理想的情况下 临近像素对于特定的像素结果影响比那些较远的像素高 

OpenCV提供了GaussianBlur的内置函数

Imgproc.GaussianBlur(src,src,new Size(7,7),0);//高斯模糊 7*7的高斯核  其他的与均值模糊一样的处理

附上效果图


中值模糊 medianBlur()

椒盐噪声是一种图像中比较常见的噪声 该噪声是稀疏分布在整个图像中的黑白像素点 

在该滤波中,我们将覆盖的像素点按照升或者降序排列 将中间元素作为锚点像素 使用中值滤波的优势在于椒盐噪声的是稀疏的出现 将他的值平均时只会对很少一部分像素造成影响,

OpenCV内置函数medianBlur()进行中值滤波

Imgproc.medianBlur(src,src,9);

下面附上效果图

锐化

锐化自定义的核  得到更加清晰的图像

Mat kernel =new Mat(3, 3, CvType.CV_16SC1);

kernel.put(0, 0, 0, -1, 0, -1, 5, -1, 0, -1, 0);//核

Imgproc.filter2D(src,src,src.depth(),kernel);

//CvType.CV_16SC1 表示图像包含一个通道(c1),图像中每个像素包含一个16比特有符号整数(16s)

下面附上效果图


膨胀

膨胀是一种奖图像中亮点区域拓张的办法。

我们可以使用OpenCv函数getStructuringElement()获取需要的核,用于执行膨胀

Mat kernelDliate=Imgproc.getStructuringElement(Imgproc.MORPH_RECT,new Size(5,5));

Imgproc.dilate(src,src,kernelDliate);

如果使用矩形的结构元素 图像就以矩形的形式生长,相似的 如果我们使用椭圆的结构元素,图像就以椭圆的形式生长

下面附上效果图


腐蚀

腐蚀是一种将图像中暗区域扩张的方法 可以用来出去图像中的噪声

Mat kernelErode=Imgproc.getStructuringElement(Imgproc.MORPH_RECT,new Size(5,5));

Imgproc.erode(src,src,kernelErode);

附上效果图


阈值化

阈值化是一种将我们想要在图像中分析的区域分割出来的方法 以为二值阈值化为例

Imgproc.threshold(src,src,100,255,Imgproc.THRESH_BINARY);//二值阈值化    100是阈值 255是最大值(白色) Imgproc.THRESH_BINARY二值化的类型

下面附上效果图


自适应阈值

对于执行图像的分割来说 设置一个全局性阈值并不是一个好的选择 光照条件影响像素的亮度。为了克服这个限制 尝试根据邻域像素为任意像素计算阈值

Imgproc.cvtColor(src,src,Imgproc.COLOR_BGR2GRAY);

Imgproc.adaptiveThreshold(src,src,255,Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C,Imgproc.THRESH_BINARY,3,0);//自定义阈值化

自定义的方法 可能会有道两种方法 

参数一

Imgproc.ADAPTIVE_THRESH_MEAN_C 阈值是邻域像素的均值

Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C 阈值是邻域像素的加权和 权重来自高斯核

参数二

邻域的大小

参数三

这是从对每个像素计算得到的均值或加权均值减去的常量

附上效果图


最后把源码附上

https://pan.baidu.com/s/1mbEpDI2fOioEbrZHYCbHkg

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容