使用此功能后
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
/// Have a precise logic to centre it
let rect = CGRect(x: 270, y: 200, width: 100, height: 30)
let button = UIButton(frame: rect)
button.setTitle("Test Button", for: .normal)
button.backgroundColor = UIColor.red
button.addTarget(self, action: #selector(MasterViewController.testButtonTapped(sender:)), for: .touchUpInside)
let window = self.view.window
window?.addSubview(button)
window?.bringSubview(toFront: button)
}
func testButtonTapped(sender: UIButton) {
debugPrint("Test button tapped")
}
最后我用plt.imshow()来展示我的手势
答案 0 :(得分:2)
问题来自tensorflow's resize_images function returning floats。
要正确调整大小并查看图像,您需要以下内容:
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
with tf.Session() as sess:
tf.global_variables_initializer().run()
image = tf.image.resize_images(original_image,(128,128))
# Cast image to np.uint8 so it can be properly viewed
# eval() tensor to get numpy array.
image = tf.cast(image, np.uint8).eval()
plt.imshow(image)
答案 1 :(得分:1)
颜色反转,即每个像素的颜色[r, g, b]
显示为[255 - r, 255 - g, 255 - b]
。
这可能与您在步骤2中获得的图像的数据类型有关。请在调整图像大小后尝试以下操作:
image = image.astype(np.uint8)
答案 2 :(得分:0)
我将使用 tensorflow 库作为 tf. tf.image.resize 调整图像大小(正确),然后当我们在其上使用 plt.imshow 时。 但是 plt.imshow 如果它看到浮点值是 0.5 或 221.3,它会将其剪辑到范围 [0,1] 中。
使用 RGB 数据将输入数据剪切到 imshow 的有效范围(浮点数为 [0..1],整数为 [0..255])。
这就是我的问题,
原始图像像素[91 105 166]。
调整大小后 tf.Tensor([ 91.01 105.01 166.01], shape=(3,), dtype=float32)
你可以看到调整大小是正确的,但剪裁是一个伤害。
正确使用该功能。
img_resize = tf.image.resize(random_img,[250,250])
img_resize = tf.cast(img_resize,'int64')
plt.imshow(img_resize)
这应该解决问题。