我的图像看起来像这样:

我有一个任务,我应该围绕他们的开口圈出所有的瓶子.我创建了一个简单的算法并开始工作.我的算法如下:
我根据上面的算法做了,但我有一些图像,我画了一个圆圈.这是因为我选择了该区域,因为瓶口区域和剩余噪音几乎相同.所以我得到了这样一个数字.
应用于图像的处理如下所示:

在原始图像上绘制圆圈后,我的最终图像如下:

我想我可以处理额外的圆圈,也就是说,因为图像的某些白色部分仍然如下图2所示.这可以使用区域偏差来过滤掉.这是一个好主意还是有其他方法吗?我如何处理玻璃后面的其他瓶子并选择它们?
我有很多按钮.点击其中的每一个我都会显示一个Toast.但是当一个toast加载并在视图中显示时,单击另一个按钮并且在显示的那个完成之前不会显示toast.
所以,我想找出一种方法来检测当前上下文中是否显示吐司.有没有办法知道是否正在显示吐司,以便我可以取消它并显示一个新的.
我认为对该models.manager对象get_query_set进行子类化并覆盖该方法或仅在子类中创建一个新方法并使用该方法没有区别.因为我从django书中取了例子;
class MaleManager(models.Manager):
def get_query_set(self):
return super(MaleManager, self).get_query_set().filter(sex='M')
class FemaleManager(models.Manager):
def get_query_set(self):
return super(FemaleManager, self).get_query_set().filter(sex='F')
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
sex = models.CharField(max_length=1, choices=(('M', 'Male'), ('F', 'Female')))
people = models.Manager()
men = MaleManager()
women = FemaleManager()
Run Code Online (Sandbox Code Playgroud)
有了这个,我可以用; Person.women.all()或者Person.men.all()取得所有男女模特对象.但是,我想可以实现类似的事情,而不是get_query_set简单地干掉这个方法;
class MaleManager(models.Manager):
def get_male(self):
return self.filter(sex='M')
class FemaleManager(models.Manager):
def get_female(self):
return return self.filter(sex='F')
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
sex = models.CharField(max_length=1, choices=(('M', 'Male'), ('F', 'Female')))
people = …Run Code Online (Sandbox Code Playgroud) 我创建了一个带.Old | .New选项的观察者.在handler方法中,我尝试在值之后获取,但编译器抱怨:'NSString'不能转换为'NSDictionaryIndex:NSObject,AnyObject
override func observeValueForKeyPath(keyPath: String!, ofObject object: AnyObject!, change: [NSObject : AnyObject]!, context: UnsafeMutablePointer<Void>) {
let approvedOld = change[NSKeyValueChangeOldKey] as Bool
let approvedNew = change[NSKeyValueChangeNewKey] as Bool
Run Code Online (Sandbox Code Playgroud) 我想以清晰和抗锯齿的方式绘制具有可变频率和可变幅度的移动正弦波.这怎么可能?
我设法用 Raphael 库的示例绘制了四种不同的曲线。现在,我想创建一条带有多个手柄的曲线。如何在此示例中添加更多句柄。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Bezier curve</title>
<style>
#holder {
height: 100%;
left: 100%;
margin: -100% 0 0 -100%;
position: absolute;
top: 100%;
width: 100%;
}
</style>
<script src='jquery.js'></script>
<script src="raphael.js"></script>
<script>
$('document').ready(function () {
var r = Raphael("holder", window.innerWidth, window.innerHeight)
function curve(x, y, ax, ay, bx, by, zx, zy, color) {
var path = [["M", x, y], ["C", ax, ay, bx, by, zx, zy]],
path2 = [["M", x, y], ["L", ax, ay], ["M", …Run Code Online (Sandbox Code Playgroud) 我想将我的资源,nib文件和本地化文件分成一个通用的可重用捆绑包.因此,我为我的ios应用程序创建了一个包,并使用构建阶段,复制包资源指定要包含在包中的资源.但是,现在如果我尝试加载捆绑包,我无法加载捆绑包.我尝试使用[NSBundle allBundles],数组只显示主应用程序包.
我还尝试枚举NSApplicationPath的目录,但是唯一可用的捆绑包是我的应用程序默认捆绑包.我想学习这种技术并利用它来分离我的资源.任何帮助和建议将不胜感激.谢谢
为了更好地理解块的行为,我一直试图理解这次崩溃背后的原因.我有一个非常简单的类来触发这个崩溃.
@implementation BlockCrashTest
- (void)doSomething
{
dispatch_queue_t queue = dispatch_queue_create("com.queue.test", DISPATCH_QUEUE_SERIAL);
__weak typeof(self) weakSelf = self;
dispatch_block_t block = ^{
__strong typeof(weakSelf) strongSelf = weakSelf;
dispatch_group_t group = dispatch_group_create();
dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC);
dispatch_group_enter(group);
[strongSelf performSomethingAsync:^{
dispatch_group_leave(group);
}];
if(dispatch_group_wait(group, time) != 0) {
NSLog(@"group already finished");
}
};
dispatch_async(queue, block);
}
- (void)performSomethingAsync:(void(^)(void))completion
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
sleep(5);
completion();
});
}
- (void)dealloc
{
NSLog(@"released object");
}
@end
Run Code Online (Sandbox Code Playgroud)
现在,如果我分配类并简单地调用方法doSomething,
BlockCrashTest *someObject = [[BlockCrashTest alloc] init]; …Run Code Online (Sandbox Code Playgroud) block objective-c grand-central-dispatch ios objective-c-blocks
如果我有
class Info {
var name: String?
}
class User {
var info: Info?
}
class WrappedClass {
var user: User = User()
}
let nameKeyPath = \WrappedClass.user.info?.name //Gets me KeyPath
let referencedNameKeyPath = \WrappedClass.user.info!.name //Gets me ReferenceWritableKeyPath
Run Code Online (Sandbox Code Playgroud)
nameKeyPath给我一个KeyPath我以后不能用来修改名称值的,但是如果我强制解开它,我会得到一个ReferenceWritableKeyPath我想要的。
不幸的是referencedNameKeyPath,由于意外发现 nil,沿线使用nil 值预计会崩溃。
我的问题是有没有办法将 a 转换KeyPath为 aReferenceWritableKeyPath或以某种方式解开它?
我在我的 iOS 应用程序中使用领域。在我的应用程序中,我制作了一个目标文件,其中有一些字符串变量,并且其中还有一个数组。这是我Object的领域课程,
class Reminder: Object {
@objc dynamic var name = ""
@objc dynamic var done = false
@objc dynamic var namesArray = [String]()
}
Run Code Online (Sandbox Code Playgroud)
现在在我的 VC 中,我将一个数组传递给namesArray我的Object班级。
let names : [String] = ["Ali","Hammad","Hamza"]
let textFieldReminder = (alertVC.textFields?.first)! as UITextField
let reminderItem = Reminder() // (8)
reminderItem.name = textFieldReminder.text!
reminderItem.done = false
reminderItem.namesArray = names
// We are adding the reminder to our database
try! self.realm.write({
self.realm.add(reminderItem)
Run Code Online (Sandbox Code Playgroud)
现在,当我运行应用程序时,应用程序崩溃并显示此错误消息,
Run Code Online (Sandbox Code Playgroud)Terminating app due to uncaught …