2014-03-31 11:34:33 Linoi 阅读数 4083

专栏地址:http://blog.csdn.net/column/details/imagep.html

本篇博客主要记录Image图像处理软件的基本图像处理,包括黑白图像、图像柔化、图像锐化。


图像黑白化

现在我们得到的大多数图像都是彩色图像,那么如果想要把它变成黑白图像,该怎么操作呢?

一个简单的方法就是——利用cvtColor实现。

cvtColor的原型如下:

C++: void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )

在cvtColor中利用CV_BGR2GRAY, CV_RGB2GRAY就可以实现从RGB图像转换为黑白图像。

转换公式如下:

\text{RGB[A] to Gray:} \quad Y  \leftarrow 0.299  \cdot R + 0.587  \cdot G + 0.114  \cdot B


Code:

void MainWindow::on_actionBlackWhite_triggered()
{
    cv::Mat bw;
    cv::cvtColor(image,bw,CV_BGR2GRAY);
    QImage bimg = QImage((const uchar*)(bw.data),bw.cols,bw.rows,QImage::Format_Indexed8);
    ui->Imagedisplaylabel->setPixmap(QPixmap::fromImage(bimg));
    //ui->Imagedisplaylabel->setScaledContents(true);
    //ui->Imagedisplaylabel->resize(ui->Imagedisplaylabel->width(),ui->Imagedisplaylabel->height());

}


Example:


References:

彩色空间及cvtColor解析




图像柔化

图像柔化其实也就是图像模糊(平滑),算是一个非常简单的操作。


Code:

void MainWindow::on_actionSmooth_triggered()
{
    cv::Mat Smooth;
    cv::namedWindow("Ori");
    cv::imshow("Ori",image);
    cv::GaussianBlur(image,Smooth,cv::Size(5,5),5);
    cv::namedWindow("S");
    cv::imshow("S",Smooth);
}


Example:




图像锐化

所谓图像锐化就是要突出图像的边缘信息,加强图像的轮廓特征,以便于人眼的识别。图像锐化是与图像平滑相反的一类处理。它主要分为:空域处理方法和频域处理方法。这里要讲的是类似Photoshop的unsharpe mask锐化,从概念上讲,unsharpe mask就是首先从原图上生成一个模糊拷贝,用原图减去这个拷贝,得到原图的边界,类似于经过一次高斯过滤查找到图像的边界。这个图像边界就是我们需要的mask。

整个锐化过程如下所示:


(上图改进方案见文献Image Enhancement via Adaptive Unsharp Masking

一个简单的实例:


Code:

void MainWindow::on_actionSharpe_triggered()
{
    cv::namedWindow("ori_s");
    cv::imshow("ori_s",image);
    cv::Mat sharpe;
    cv::GaussianBlur(image,sharpe,cv::Size(5,5),5);
    cv::addWeighted(image,1.5,sharpe,-0.6,0,sharpe);
    cv::namedWindow("sharpe");
    cv::imshow("sharpe",sharpe);
}

Example:


References:

SHARPENING: UNSHARP MASK

GUIDE TO IMAGE SHARPENING

Unsharp masking[Wikipedia]

利用unsharp mask锐化图像



更多图像处理资源,请关注博客:LinJM-机器视觉微博:林建民-机器视觉

2018-10-29 18:45:30 lgyuWT 阅读数 450

选定的图像,图形或物体,对待处理的图像进行遮挡,来控制图像处理的区域或处理过程。用于覆盖特定图像或物体称为掩模或模板。光学图像处理中,掩模可以做胶片、滤光片等。数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。

数字图像处理中,图像掩模主要用于:

  1. 提取感兴趣区,用预先制作的感兴趣区掩模与待处理图想相乘,得到感兴趣图像,感兴趣内图像值保持不变,而区外图像值都为0.
  2. 屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数计算,或进队屏蔽区做处理统计。
  3. 结构特征提取,用相似性变量或图像匹配方法检测和图像中与淹没相似的结构特征。
  4. 特殊形状图像的制作。用选定的图像、图形或物体,对待处理的图像进行遮挡,来控制图像处理的区域或处理过程。用于覆盖特定的特定图像或物体称为掩模或模板。

掩模是一种图像滤波的模板,实用掩模经常处理的是遥控图像。当提取道路或者河流,或者房屋时,通过一个n*n的矩阵来对图像进行像素过滤,然后将我们需要的地物或者标志突出显示出来。这个矩阵就是一种掩模。

2017-10-03 00:33:06 hhy_csdn 阅读数 6959

图像处理的MATLAB基础

一、MATLAB在图像处理领域的优点

优秀的矩阵运算能力

图像处理教程(一) 中我们提到每一张图片都可以看做是一个由像素点组成的矩阵,黑白图片用一个二维矩阵就可以表示,彩色图片则要用三个二维矩阵,分别表示RGB三个颜色通道。

而MATLAB是十分擅长处理矩阵运算的科学计算软件,所以MATLAB处理图像信息就格外方便。

例如:一维向量可以表示为声音信号在时域上的离散采样信息,即可以表示一个声音信号;二维矩阵自然可以表示图像信息。

MATLAB内置了许多函数可以对矩阵做各样的处理,如sum()函数,mean()函数,imread(),imwrite()函数等等。

友好的编程语言与操作界面

不像其他高级语言(如C语言),在使用变量前必须预先定义变量,声明其数据类型,MATLAB可以直接对任意变量展开操作而不需要预先声明,MATLAB会自动为变量分配内存,确定其数据类型等。这无疑为我们编写程序带来了极大方便。

MATLAB的界面也十分友好,它既支持我们用MATLAB语言编写脚本、函数文件完成特定工作,也支持交互式的操作形式,比如种类丰富的工具箱Toolbox,许多工作动动鼠标即可完成。

二、MATLAB图像处理相关函数

本节内容的主要内容是向大家介绍一些常用的、必备的MATLAB图形处理函数。熟练掌握这些函数的用法对于以后的工作有着莫大的好处。下面我们从读取图片开始。

读取图片

myimage = imread('newborn.tif');

myimage是一个矩阵,存储着newborn.tif图片的像素信息;在imread( )函数中,以字符串的形式给出图片的名称。如果MATLAB的工作路径和图片存放的路径不一致,则要写成如下的形式,不然MATLAB会给出找不到图片的错误。

imread ('D:/dataset/image/newborn.tif');
% 注意语句后面的分号不要省略,否则我们的command window会被庞大无比的像素矩阵充满

显示图片

在读入整张图片之后,我们可以用imshow()命令将图片显示出来。

figure(1);
I = imshow(myimage);
title('newborn.tif');

显示图片的交互窗口

为了查看图片上某点的坐标和RBG值(或者灰度值),我们可以使用下面的函数:

impixelinfo; %注意,pixval on早在MATLAB 2008a就已经淘汰了

输入上面命令后,图片的左下角会出现一行信息,随着鼠标的滑动,显示不同点的左边和RGB信息(或灰度值信息)。
左下角impixelinfo命令

使用如下命令可以调整figure窗口的背景颜色:

% 调整背景为绿色
whitebg ('g');
whitebg ('green');
whitebg ([0 1 0]);% 绿色的RGB值
% 其他颜色还有 Cyan blue white magenta yellow red black 等等

这里写图片描述

获取图片信息

size(myimage)% 可以显示矩阵的大小尺寸,几行几列几页

myimage(100,200,2)% 显示第2页第100行第200列的值

impixel(myimage,100,200)% 显示myimage图片在100行200列处的色彩值

imfinfo('name_of_img.jpg');% 可以显示图片的详细信息

impixel的用法

写入图片

有时我们需要将处理结果以图片的形式写入某个位置,这就会用到下面的函数。

% 函数参数格式
imwrite(X,map,'filename','fmt');
% 例子,可以用来转换图片格式,tif->png
a = imread('autumn.tif');
imwrite(a,'autumn.png','png');

命令中的X是要存储图片的像素矩阵,map是该图片的colormap(可选项),两个字符串表示待写图片的名字和格式。

生成伪彩色图片

% 输入一张灰度图名称,不必键入单引号
im=input('Enter the file name (gray level image) :','s');
k=imread(im);
% k是读入的照片,灰度图的z=1
[x y z]=size(k);
% 将uint8格式转换为double格式
k=double(k);
% 对灰度图做变换,生成三个色彩通道
for i=1:x
    for j=1:y
        if k(i,j)>=0 & k(i,j)<50
            m(i,j,1)=k(i,j,1)+5;
            m(i,j,2)=k(i,j)+10;
            m(i,j,3)=k(i,j)+10;
        end
        if k(i,j)>=50 & k(i,j)<100
            m(i,j,1)=k(i,j)+35;
            m(i,j,2)=k(i,j)+28;
            m(i,j,3)=k(i,j)+10;
        end
        if k(i,j)>=100 & k(i,j)<150
            m(i,j,1)=k(i,j)+52;
            m(i,j,2)=k(i,j)+30;
            m(i,j,3)=k(i,j)+15;
        end
        if k(i,j)>=150 & k(i,j)<200
            m(i,j,1)=k(i,j)+50;
            m(i,j,2)=k(i,j)+40;
            m(i,j,3)=k(i,j)+25;
        end
        if k(i,j)>=200 & k(i,j)<=256
            m(i,j,1)=k(i,j)+120;
            m(i,j,2)=k(i,j)+60;
            m(i,j,3)=k(i,j)+45;
        end
    end
end
% 显示原图像
figure,imshow(uint8(k),[]);
% 显示生成的伪彩色图片
figure,imshow(uint8(m),[]);

256色、高彩色、真彩色

每个像素的色彩表示可以用多位二进制数表示。

用1bit只能表示黑或白,即二值图像。

用8bit即可表示256种颜色,所以MATLAB读入的图片矩阵常有uint8的数据格式,8个bit中2个bit表示蓝色、分别用3个bit表示红色和绿色。
256色

高彩色(High Color)可以表示65536种颜色,更加接近真实。
高彩色

而真彩色(True Color)有24bit来表示每个像素的色彩值,最多有16,777,216种颜色,当然储存空间响应也要增大。
真彩色

MATLAB中常用的数据类型

数据类型
注意:数据类型不同的变量之间不能做运算,需要用转换函数先进行一步转换。

这里写图片描述

% 示例代码
% 原始图片
[em,emap] = imread(‘trees.tif');
figure, imshow(em,emap);
% 索引图转换成灰度图
ygray = ind2gray(em, emap);
figure, imshow (ygray);
% 灰度图转换成索引图
[y, map] = gray2ind(ygray);
figure, imshow (y);
% 读入原始图片
im = imread('twins.tif');
figure,imshow(im);
% rgb图像转灰度图
yim = rgb2gray(im);
figure,imshow(yim);
% 灰度图转RGB图
yim2 = gray2rgb(yim);
figure,imshow(yim2);
% 读入原始图像
RGB = imread('peppers.png');
% rgb图像转换为128色的索引图
[X,map] = rgb2ind(RGB,128);
figure, imshow(X,map); 
% rgb图像转换为256色的索引图
[X,map] = rgb2ind(RGB,256);
figure, imshow(X,map);
% rgb图像转换为2色的索引图
[X,map] = rgb2ind(RGB,2);
figure, imshow(X,map);
% 索引图转换为rgb图
[em,emap] = imread('emu.tif')
figure, imshow(em,emap)
y = ind2rgb(em,emap)
figure, imshow(y)

以上我们展示了二值图、灰度图、色彩图、索引图之间的相互转换过程,具体的函数应用可以在command window下键入help rgb2gray等命令来获取详细信息。

三、小练习

1)试着在MATLAB的命令窗口键入help imdemos,之后命令窗口会给出Image Processing Toolbox中所有的示例(sample)。列一个表格,看看有多少个样本图片。
对每一张图片,试着确定它的类型(二值图、灰度图、真彩色、索引色)
确定图片的尺寸,在像素层面。

下面是答案:

Sample TIFF images: 
autumn.tif, 
board.tif, 
cameraman.tif, 
canoe.tif, 
cell.tif, 
circbw.tif, 
circuit.tif, 
eight.tif, 
forest.tif, 
kids.tif, 
logo.tif, 
m83.tif, 
moon.tif, 
mri.tif, 
paper1.tif, 
pout.tif, 
shadow.tif, 
spine.tif, 
tire.tif, 
trees.tif.
Binary: 
circbw.tif (3822), 
logo.tif (1074).

Grayscale: 
cameraman.tif (65536), 
cell.tif (30369), 
circuit.tif (76160), 
eight.tif (74536), 
moon.tif (192246), 
paper1.tif (51296), 
pout.tif (69840),
tire.tif (47560).

True color: 
autumn.tif (213210), 
board.tif (594864), 
forest.tif (134547).

Indexed color: 
canoe.tif (71622), 
forest.tif (134547), 
kids.tif (127200), 
m83.tif (151200), 
mri.tif (16384), 
shadow.tif (66454), 
spine.tif (179830), 
trees.tif (90300).

2)找一张灰度图,然后利用imwrite()函数将其写为JPEG、PNG、BMP格式的图片,并且比较他们各自的大小。

2015-12-18 16:03:39 A09211008 阅读数 4268

最近版上有不少人在讨论图像处理的就业方向,似乎大部分都持悲观的态度。我想结合我今年找工作的经验谈谈我的看法。

就我看来,个人觉得图像处理的就业还是不错的。首先可以把图像看成二维、三维或者更高维的信号,从这个意义上来说,图像处理是整个信号处理里面就业形势最好的,因为你不仅要掌握(一维)信号处理的基本知识,也要掌握图像处理(二维或者高维信号处理)的知识。其次,图像处理是计算机视觉和视频处理的基础,掌握好了图像处理的基本知识,就业时就可以向这些方向发展。目前的模式识别,大部分也都是图像模式识别。在实际应用场合,采集的信息很多都是图像信息,比如指纹、条码、人脸、虹膜、车辆等等。说到应用场合,千万不能忘了医学图像这一块,如果有医学图像处理的背景,去一些医疗器械公司或者医疗软件公司也是不错的选择。图像处理对编程的要求比较高,如果编程很厉害,当然就业也多了一个选择方向,并不一定要局限在图像方向。

下面谈谈我所知道的一些公司信息,不全,仅仅是我所了解到的或者我所感兴趣的,实际远远不止这么多。

搜索方向

基于内容的图像或视频搜索是很多搜索公司研究的热点。要想进入这个领域,必须有很强的编程能力,很好的图像处理和模式识别的背景。要求高待遇自然就不错,目前这方面的代表公司有微软、google、yahoo和百度,个个鼎鼎大名。

医学图像方向

目前在医疗器械方向主要是几个大企业在竞争,来头都不小,其中包括Simens、GE、飞利浦和柯达,主要生产CT和MRI等医疗器材。由于医疗器械的主要功能是成像,必然涉及到对图像的处理,做图像处理的很有机会进入这些公司。它们在国内都设有研发中心,simens的在上海和深圳,GE和柯达都在上海,飞利浦的在沈阳。由于医疗市场是一个没有完全开发的市场,而一套医疗设备的价格是非常昂贵的,所以在这些地方的待遇都还可以,前景也看好。国内也有一些这样的企业比如深圳安科和迈瑞
计算机视觉和模式识别方向
我没去调研过有哪些公司在做,但肯定不少,比如指纹识别、人脸识别、虹膜识别。还有一个很大的方向是车牌识别,这个我倒是知道有一个公司高德威智能交通似乎做的很不错的样子。目前视频监控是一个热点问题,做跟踪和识别的可以在这个方向找到一席之地。
上海法视特位于上海张江高科技园区,在视觉和识别方面做的不错。北京的我也知道两个公司:大恒和凌云,都是以图像作为研发的主体。

视频方向

一般的高校或者研究所侧重在标准的制定和修改以及技术创新方面,而公司则侧重在编码解码的硬件实现方面。一般这些公司要求是熟悉或者精通MPEG、H.264或者AVS,选择了这个方向,只要做的还不错,基本就不愁饭碗。由于这不是我所感兴趣的方向,所以这方面的公司的信息我没有收集,但平常在各个bbs或者各种招聘网站经常看到。

我所知道的两个公司:诺基亚和pixelworks

其他

其实一般来说,只要涉及到成像或者图像的基本都要图像处理方面的人。比方说一个成像设备,在输出图像之前需要对原始图像进行增强或者去噪处理,存储时需要对图像进行压缩,成像之后需要对图像内容进行自动分析,这些内容都是图像处理的范畴。

一些与图像有关或者招聘时明确说明需要图像处理方面人才的公司:

上海豪威集成电路有限公司(www.ovt.com.cn)

中芯微

摩托罗拉上海研究院

威盛(VIA)

松下

索尼

清华同方

三星

所有与图像(静止或者运动图像)有关的公司都是一种选择。比如数码相机、显微镜成像、超声成像、工业机器人控制、显示器、电视、遥感等等,都可以作为求职方向。

要求:

1、外语。如果进外企,外语的重要性不言而喻。一般外企的第一轮面试都是英语口语面试。
2、编程。这方面尤以C++为重,很多公司的笔试都是考c++知识。
3、专业水平。如果要找专业相关的工作,研究生期间的研究经历和发表的论文就显的比较重要。
4、知识面的宽度。我觉得在研究生期间,除了做好自己的研究方向之外,扩宽一下知识面也有很大的帮助,当然这个知识面指的是图像处理、计算机视觉和模式识别,知识面越宽,就业时的选择就会越多。
图像处理方向毕业的就业面非常广,而且待遇在应届生应该是中上等。其实还是一句话,能力决定一切。只要研究生三年没有白过,根本不愁找不到好工作。祝所有正在读研或者即将读研的朋友将来都能有一份满意的工作。

我结合自己找工作的一些经验简单介绍一下图像处理方向就业前景,希望能对后来者有所帮助!

1、请学好图像基本理论知识,笔试会遇到很多基础的题;
2、请学好c++语言,99%以上的公司在招图像岗位的人员时都会笔试c++;
3、请多做一些实际的项目,少一些理论的研究(针对中小企业而言);
4、请不要只局限于的课题,因为可能你的课题只是图像处理领域的一些皮毛;
5、请多了解一些相关的前沿知识;
6、请不要迷信自己的算法,比如BP神经网络(可能理论研究时用的很多,可是实际呢?)
7、请尽量与企业的相关人士探讨该领域的问题,那样的收获比书本大很多;

先写这么多吧,以后再补充!希望能对大家有所帮助!

附:北京相关图像的公司(希望大家能够多补充,公司排名不分先后,若分类错误,请见谅,呵呵!)

外企:

1、 东芝(中国)有限公司 研究开发中心开发部
2、 通用电气(GE)医疗集团
3、 微软
4、 SONY
5、 凌阳
6、 理光软件研究所(北京)
7、 富士通研究开发中心有限公司
8、 三星电子中国通信研究院
9、 NEC中国研究院
10、 研发系统
11、 德加拉北京办事处
12、 适普软件
13、 松下
14、 佳能信息技术(北京)有限公司
15、 ITS(中国)有限公司

国内大型企业:

1、 海湾控股集团有限公司
2、 腾讯研究院招
3、 北大方正
4、 清华同方
5、 北京方正国际
6、 卓望集团
7、 迪瑞集团(北京)研发中心
8、 汉王科技股份有限公司
9、 威视股份
10、联想

事业单位:

1、 中国核工业集团公司
2、 船舶系统工程部
3、 中科院软件所二部
4、 中国科学院软件研究所
5、 中科院自动化所
6、 中国兵器工业第二〇八研究所
7、 中国航天科技集团公司
8、 中国航天科技集团公司第五研究院
9、 综合信息系统技术国家级重点实验室
10、 国家农业信息化工程技术研究中心
11、 中国航天科工集团公司飞航技术研究院
12、 铁道部信息技术中心
13、 中国航天科工集团第二研究院第二〇七所
14、 中国科学院生物物理研究所
15、 中国电子科技集团公司第三研究所
16、 中国船舶信息中心
17、 航天科工卫星技术有限公司
18、 中科院电子所
19、 中国科学院计算技术研究所
20、 中国安全生产科学研究院
21、 中国航天时代电子公司光纤惯导项目分公司
22、 中国计量科学研究院
23、 公安部第一研究所
24、 中国印钞造币总公司

国内中小企业:

1、 北京中自邦柯科技有限公司
2、 北京锦恒佳晖汽车电子系统有限公司
3、 长峰科技工业集团公司
4、 北京京天威科技发展有限公司招聘职位
5、 北京优纳科技有限公司
6、 北京深拓科技有限公司
7、 永鑫宇恒信息技术
8、 北京蓝卡软件技术有限公司
9、 中盛信合(北京)科技有限公司
10、 北京赛尔蒂扶科技有限公司
11、 北达万坤(北京)科技发展有限公司
12、 北京思比科微电子技术有限公司
13、 北京德韶数码技术有限公司
14、 北京天远三维科技有限公司
15、 航天星图科技(北京)有限公司
16、 北京友通
17、 北京中盾安民分析技术有限公司
18、 北京文安科技发展有限公司
19、 北京华生恒业科技有限公司
20、 北京经纬恒润科技有限责任公司
21、 北京伟景行数字城市科技有限公司招聘
22、 北京极明源科技有限公司
23、 北京优立慧科信息技术有限公司
24、 北京华旗资讯数码科技有限公司
25、 北京新航智科技有限公司
26、 银河动力
27、 北京普赛科技有限公司
28、 北京德鑫泉科技发展有限公司
29、 北京嘉恒中自图像技术有限公司
30、 优加利信息科技(北京)技术中心
31、 北京天诚盛业科技有限公司
32、 北京华胜天成有限公司
33、 北京威速科技有限公司
34、 深圳市蓝韵实业有限公司(北京)
35、 北京维深科技发展有限责任公司
36、 重庆金山科技(集团)有限公司(北京)
37、 创新科技(中国)有限公司北京分公司
38、 北京思创贯宇科技开发有限公司
39、 明锐标图
40、 中钞长城金融设备控股有限公司
41、 北京文安视觉科技有限公司
42、 北京东方红海科技发展有限公司
43、 北京普赛科技有限公司
44、 北京昂天科技有限公司
45、 中国东方红卫星股份有限公司
46、 北京长江源科技有限公司
47、 北京海鑫科金高科技股份有限公司
48、 北京瑞斯康达科技发展有限公司
49、 厚德新视
50、 北京嘉恒中自图像技术有限公司
51、 北京科天健图像技术有限公司
52、 大恒图像
53、 凌云光子技术集团
54、 微视凌志
55、 北京微视新纪元科技有限公司
56、 银河传媒
57、 太阳驹(北京)科技发展有限公司
58、 北京道达天际软件技术有限公司
59、 北京航星永志科技有限公司
60、 北京创新未来科技有限公司
61、 北京吉威数码信息技术有限公司
62、 神形互联(北京)科技有限公司
63、 智安邦科技
64、 北京亚邦伟业技术有限公司
65、 北京顶亮科技有限公司
66、 北京华星世联科技有限公司
67、 北京昂天科技有限公司
68、 北京多维视通技术有限公司
69、 同方知网技术产业集团
70、 北京天诚盛业科技有限公司
71、 欢乐网北京研发中心
72、 德众通科技发展(北京)有限公司
73、 北京中远通科技有限公司
74、 北京山海经纬信息技术有限公司
75、 北京德威同致科技有限公司
76、 航天量子数码科技(北京)有限公司
77、 北京超图地理信息技术有限公司
78、 北京中科软件有限公司
79、 北京源德生物医学工程有限公司
80、 北京思比科微电子技术有限公司
81、 北京融信博通科技发展有限公司
82、 北京盛赞科技有限公司_
83、 北京普赛科技有限公司
84、 北京文通信息技术有限公司
85、 万盛(中国)科技有限公司
86、 北京康拓红外技术有限公司

形态学图像处理

阅读数 2379

没有更多推荐了,返回首页