问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

photoshop中的魔棒工具有什么作用

发布网友 发布时间:2022-04-29 14:28

我来回答

8个回答

懂视网 时间:2022-05-11 18:01

本文的主题实际上是图像的颜色空间的转换,借助一个颜色选取程序来说明OpenCV中颜色转换函数的用法以及一些注意事项。

一、几种常见的颜色空间:

RGB颜色空间:RGB采用加法混色法,因为它是描述各种“光”通过何种比例来产生颜色。光线从暗黑开始不断叠加 产生颜色。RGB描述的是红绿蓝三色光的数值。数字图像存储方面一般都是用RGB模式,值得注意的是OpenCV里三通道的存储顺序是BGR。

HSV,HSI:这两个颜色格式都是根据人眼对颜色的区分来定义的格式,其中H(hue)表示色相,S(saturation)表示饱和度,V(value)表示明度,I(intensity)代表了亮度。

Lab空间:模型中均匀改变对应于在感知颜色中的均匀改变,所以我们可以把Lab想像为颜色空间中的一个点,相邻的点靠的越近说明两者的颜色越接近,所以Lab空间常用来度量两个颜色的相似性。

更多颜色空间的知识可以参考:http://en.wikipedia.org/wiki/Color_space

二、OpenCV中的颜色空间转换

OpenCV里通过cvtColor函数来完成图片的颜色转换,cvtColor是在opencv2/imgproc/imgproc.hpp头文件中定义的,它的C++接口如下:

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

src:输入图像。

dst:输出图像。

code:颜色转换类型,比如:CV_BGR2Lab,CV_BGR2HSV,CV_HSV2BGR,CV_BGR2RGB。

dstCn:输出图像的通道号,如果默认为0,则表示按输入图像的通道数。

把image图像由BGR转换为Lab:cvtColor(image,image,CV_BGR2Lab)

三、简单的魔术棒程序

首先我们定义一个colorDetect类:

class colorDetect{private: int minDist; //minium acceptable distance Vec3b target;//target color; 
 Mat result; //the resultpublic:
 colorDetect(); void SetMinDistance(int dist); void SetTargetColor(uchar red,uchar green,uchar blue); void SetTargetColor(Vec3b color); //set the target color Mat process(const Mat& image); //main process};

其中的minDist是我们定义的阈值用于限定两种颜色之间的距离,相当于PhotoShop中魔术棒工具的阈值。

target是目标颜色,相当于种子颜色。result是存储处理得到的结果。

process是主要的处理程序,下面我们来看process的内容。

Mat colorDetect::process(const Mat& image)
{ Mat ImageLab=image.clone();
 result.create(image.rows,image.cols,CV_8U); 
 //将image转换为Lab格式存储在ImageLab中 
 cvtColor(image,ImageLab,CV_BGR2Lab); 
 //将目标颜色由BGR转换为Lab 
 Mat temp(1,1,CV_8UC3);
 temp.at<Vec3b>(0,0)=target;//创建了一张1*1的临时图像并用目标颜色填充 
 cvtColor(temp,temp,CV_BGR2Lab);
 target=temp.at<Vec3b>(0,0);//再从临时图像的Lab格式中取出目标颜色

 // 创建处理用的迭代器 
 Mat_<Vec3b>::iterator it=ImageLab.begin<Vec3b>(); 
 Mat_<Vec3b>::iterator itend=ImageLab.end<Vec3b>(); 
 Mat_<uchar>::iterator itout=result.begin<uchar>(); 
 while(it!=itend)
 { 
 //两个颜色值之间距离的计算 
 int dist=static_cast<int>(norm<int,3>(Vec3i((*it)[0]-target[0],
  (*it)[1]-target[1],(*it)[2]-target[2]))); 
  if(dist<minDist)
  (*itout)=255; 
  else  
  (*itout)=0;
 it++;
 itout++;
 } return result;
}


程序中有2点需要特别注意:

1,在将图像转换为Lab空间后,目标颜色也需要进行转换,做法是创建了一个临时图像。

2,判断两个颜色之间的距离运算了norm函数,它的运算是norm<typename,dim>(v)。其中v是一个dim维的向量。程序中是一个三维的适量,是两个颜色值两减后的结果。

那值得思考的是能不能把Vec3i((*it)[0]-target[0],(*it)[1]-target[1],(*it)[2]-target[2])替换为Vec3i((*it)-target)呢?答案是否的,因为(*it)-target在实际运算过程中会自动的把相减的结果进行类型限制。

我们对目标颜色和阈值进行这样的设置后可以得到一个示例的效果:

cdet.SetTargetColor(150,150,150);
cdet.SetMinDistance(50);

OpenCV成长之路(3):模仿PhotoShop中魔术棒工具

更多OpenCV成长之路(3):模仿PhotoShop中魔术棒工具相关文章请关注PHP中文网!

热心网友 时间:2022-05-11 15:09

魔棒工具作用:可以选择颜色一致的区域,而不必跟踪其轮廓。较低的容差值使魔棒选取与所点按的像素非常相似的颜色,而较高的容差值可以选择更宽的色彩范围。

魔棒工具使用方法:

1、首先打开photoshop程序,打开一张需要进行魔棒选取区域的图片,需要快速选取图片白色的背景。

2、然后双击图片图层,将图层解锁操作。

3、然后点击左侧工具栏中的“魔棒工具”。

4、然后在魔棒工具的设置栏中,将容差根据需要设置数值,点击“消除锯齿”和“连续”。

5、然后将鼠标光标点击在图片的白色背景处,即可快速将白色的部分选中。

热心网友 时间:2022-05-11 16:27

photoshop中的魔棒工具的作用是快速选择颜色基本相同的区域,达到快速抠图的目的,具体使用方法是:

1、打开图片,点击“魔术棒工具”;

2、设置“魔术棒”参数,“容差”参数越大,表示选择的范围越广,在“连续”前打勾表示选择连续的范围,“容差”参数越小,表示选择的范围越小,去掉“连续”前的勾可以选择图片里所有颜色相同的范围;

3、打开“编辑--清除”,保存为png格式图片,完成抠图。

热心网友 时间:2022-05-11 18:02

魔术棒工具主要是让用户将颜色相近的区域选择出来的工具。

能分析单击之处的像素颜色,来选择所有相似的像素。

结合调整魔术棒的容差,在选择复杂图形的时候,利用魔术棒是相当方便的。

热心网友 时间:2022-05-11 19:53

一种选区工具,可以选择一定色域的选区。比如连续的一片红色,或者在同一图层中不连续的同一种颜色(要去掉“连续”那里的勾。选择“容差”的数量可以改变颜色的相似度,值越大,可选范围越大。

热心网友 时间:2022-05-11 22:01

先取相似的像素区域,可以通过调容差来扩大或缩小选取的范围,不钩取连接使用可选取画面中所有相近的像素

热心网友 时间:2022-05-12 00:26

选取颜色相近的区域,

热心网友 时间:2022-05-12 03:24

有接收电视作用!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 人类是怎样破坏地球的? 有。……有……还有……造句有关去菜市场买菜的句子 只有一个地球 购买一天菜作文 买菜的过程 生态灾难 人生弯路也有靓丽风景名言 天龙八部游戏 组队六人等级分别是 92 92 98 102 102 110 请问这是多少级的副本 二年级我和爸爸妈妈一起去买菜。写话买菜 PS中魔棒工具具体怎么使用 孙悟空大闹天宫 是富有才请吗? 1992年正月25日出生的命运 如何去菜场买菜... 92年8月26日处女座男生性格分析 有好看的动漫吗?介绍些` 求一幅关于菜市场或农贸市场的卡通画,远近了距离适中。 (用来做儿童虚拟菜市场交易的背景图) 猫耳票房 我想换一个手机号是买一个靓号还是普通号码?给点建议 知乎手机号码不可用了如何更换手机号呢? 雅思血糖仪调试步骤 自用的血糖仪应该怎么校对? photoshop中,魔棒工具是用来做什么的呢? 美国汽车之城底特律 如何衰落成最悲惨的鬼城 农贸市场买菜那么方便,为什么年轻人不爱去? PHOTOSHOP要用魔术棒选择一个图层里面的所有东西怎么弄?或者说如何选取一个图层里面的所有东西? ps的魔棒工具怎么用来抠图 LIBOR逐渐退出英国市场,改为使用SONIA。这件事对英国银行的顾客的什么零业务会造成什么影响?_百度问一问 蕾哈娜的新品牌将如何改变奢侈品的定义? 标准差大于1小于1的区别 标准差大于1小于1的区别是什么? 数据标准化处理后数值均小于1吗? 标准差为1的意义? 一组数据的方差一定大于它的标准差吗? 标准差大于1说明什么? 标准偏差可以大于1吗???急!!!在线等 标准差是不是都在0和1之间 标准正态分布的标准差为1有什么物理意义 标准差的性质是什么? 标准正态分布为什么标准差是1 “标准分的平均值是0,标准分的标准差是1”是什么意思 电脑怎么下载音乐到u盘