1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 高反差保留滤镜学习OpenCV:滤镜系列(11)——高反差保留

高反差保留滤镜学习OpenCV:滤镜系列(11)——高反差保留

时间:2023-11-29 12:40:50

相关推荐

高反差保留滤镜学习OpenCV:滤镜系列(11)——高反差保留

这几周笔者几篇文章介绍了改高反差保留滤镜的文章. 关联文章的地址

高反差保留就是高通滤波

r=(pix[x,y]-avg(R))/128

pix[x,y]*r+128*(1-r)

#include <math.h>#include <opencv/cv.h>#include <opencv/highgui.h>using namespace cv;using namespace std;int R=5;int main(){Mat src = imread("D:/10.jpg",1);int width=src.cols;int heigh=src.rows;Mat img;src.copyTo(img);Mat avg;//GaussianBlur(img,avg,Size(R,R),0.0);blur(img,avg,Size(R,R));Mat dst(img.size(),CV_8UC3);float tmp;for (int y=0;y<heigh;y++){uchar* imgP=img.ptr<uchar>(y);uchar* avgP=avg.ptr<uchar>(y);uchar* dstP=dst.ptr<uchar>(y);for (int x=0;x<width;x++){float r0 = abs((float)imgP[3*x]-(float)avgP[3*x])/128; tmp = abs( ((float)imgP[3*x] )*r0 + 128*(1-r0) );tmp=tmp>255?255:tmp;tmp=tmp<0?0:tmp;dstP[3*x]=(uchar)(tmp);float r1 = abs((float)imgP[3*x+1]-(float)avgP[3*x+1])/128;tmp = (uchar)abs( ((float)imgP[3*x+1])*r1 + 128*(1-r1) );tmp=tmp>255?255:tmp;tmp=tmp<0?0:tmp;dstP[3*x+1]=(uchar)(tmp);float r2 = abs((float)imgP[3*x+2]-(float)avgP[3*x+2])/128;tmp = (uchar)abs( ((float)imgP[3*x+2])*r2 + 128*(1-r2) );tmp=tmp>255?255:tmp;tmp=tmp<0?0:tmp;dstP[3*x+2]=(uchar)(tmp);}}imshow("high",dst);//高通滤波测试Mat kern = (Mat_<char>(3,3) << -1, -1, -1,-1, 5, -1,-1, -1, -1);Mat dstF;filter2D(img,dstF,img.depth(),kern);imshow("kernel",dstF);waitKey();imwrite("D:/高反差保留.jpg",dst);imwrite("D:/高通滤波.jpg",dstF);}

每日一道理

“一年之计在于春”,十几岁的年纪,正是人生的春天,别辜负了岁月老人的厚爱与恩赐。行动起来,播种梦想吧!

原图:

高反差保留:

高通滤波器:

文章结束给大家分享下程序员的一些笑话语录: 刹车失灵

有一个物理学家,工程师和一个程序员驾驶着一辆汽车行驶在阿尔卑斯山脉 上,在下山的时候,忽然,汽车的刹车失灵了,汽车无法控制地向下冲去, 眼看前面就是一个悬崖峭壁,但是很幸运的是在这个悬崖的前面有一些小树 让他们的汽车停了下来, 而没有掉下山去。 三个惊魂未定地从车里爬了出来。

物理学家说, “我觉得我们应该建立一个模型来模拟在下山过程中刹车片在高 温情况下失灵的情形”。

工程师说, “我在车的后备厢来有个扳手, 要不我们把车拆开看看到底是什么 原因”。

程序员说,“为什么我们不找个相同的车再来一次以重现这个问题呢?”

--------------------------------- 原创文章 By

高反差保留和滤镜

---------------------------------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。