我的问题是,如果我有一个狮子图像,我只想改变狮子的 colored颜色 ,而不是背景色.为此,我引用了SO question,但它改变了整个图像的 colored颜色 .此外,这张照片看起来也不太好.我需要像photoshop那样改变 colored颜色 .无论是在coregraphics中还是我必须使用任何其他库.

编辑:我需要的 colored颜色 变化是像iQuikColor应用程序

enter image description here

推荐答案

See answers below instead. Mine doesn't provide a complete solution.


以下是使用OpenCV的可能解决方案的示意图:

  • 使用cvCvtColor将图像从RGB转换为HSV(我们只想更改色调).
  • cvThreshold指定特定公差(您需要的是一系列 colored颜色 ,而不是一种平面 colored颜色 )来隔离一种 colored颜色 .
  • 使用斑点检测库(如cvBlobsLib)丢弃低于最小尺寸的 colored颜色 区域.这将go 除场景中 colored颜色 相似的点.
  • 使用cvInRangeS遮罩 colored颜色 ,并使用生成的遮罩应用新色调.
  • cvMerge使用在第一步中保存的饱和度和亮度通道组成的图像,创建具有新色调的新图像.

网络上有几个OpenCV iOS端口,例如:http://www.eosgarden.com/en/opensource/opencv-ios/overview/我自己没有try 过,但似乎是一个很好的研究方向.

Objective-c相关问答推荐

如何删除Objective-C中未定义的符号&错误?

反编译ARM64和理解分支目标边界

如何使用 iOS 7 SpriteKit 粒子向非游戏的 iOS 应用程序添加粒子效果?

NSString "nil or empty" 判断 - 这完成了吗?

viewWillAppear,viewDidAppear 没有被调用,没有触发

iOS:警告try 呈现其视图不在窗口层次 struct 中的 ViewController

协议与类别

setFont 已弃用?

如果用户禁用了应用程序的推送,是否可以进行静默远程通知?

动态转发: suppress Incomplete Implementation 警告

.m 文件中的空@interface 声明是做什么用的?

如何更改 UICollectionView 中的滚动方向?

UICollectionView 标头未显示

iOS 7 - 键盘动画

AdMob 因 [GADObjectPrivate changeState:] 崩溃:无法识别的 Select 器

如何在 Cocoa 中获取 NSArray 的第一个 x 元素?

如何将 nil 添加到 nsmutablearray?

我可以在 Objective-C switch 语句中声明变量吗?

找出用户是否按下了 uinavigationcontroller 中的后退按钮?

在 Xcode 中制作 RGB colored颜色