是否有一种简单的方法可以添加到我的原始代码中,以便我可以在我的子图的两列中添加另一个标题?例如,如下图所示的粉红色区域中的某个地方.
有人推荐我看看这篇文章的解决方案,但我想看看是否有一个方法没有使用for循环
我的代码:
import cv2
import numpy as np
import matplotlib.pyplot as plt
path = 'R:\\Temp\\xx\\'
path1 = 'R:\\Temp\\xx\\'
def Hue(im_file):
im = cv2.imread(im_file)
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV_FULL) # Get Hue value= range[0,360]
im1 = im[776, 402]
Hue = im1[0]
return Hue
def Saturation(im_file):
im = cv2.imread(im_file)
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV_FULL) #return Saturation value = range[0,255]
im1 = im[776, 402]
Saturation = im1[1]
return Saturation
def Value(im_file):
im = cv2.imread(im_file)
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV_FULL) #return Value(Brightness) value = …Run Code Online (Sandbox Code Playgroud) 任何人都知道我应该如何解决这个问题?我知道有保存按钮,我可以手动完成,但我正在绘制 100 多个图形,所以我希望有一种方法可以自动完成?
我正在使用“TkAgg”后端,我在寻找任何可能的解决方案。通过在我的绘图函数末尾使用以下内容。
manager = plt.get_current_fig_manager()
manager.resize(*manager.window.maxsize())
plt.savefig(r'C:\Users\310293649\Desktop\PlotFigure\TESTING.png')
plt.show()
Run Code Online (Sandbox Code Playgroud)
编辑:也 尝试过这个,但我仍然能够以我喜欢的理想方式 plt.show() 图形,这是完整的窗口大小。但它仍然会自动以最小化默认形式保存我的所有图形。
wm = plt.get_current_fig_manager()
wm.window.state('zoomed')
plt.savefig(r'C:\Users\310293649\Desktop\PlotFigure\TESTING.png')
plt.show()
Run Code Online (Sandbox Code Playgroud)
如您所见,代码设法以最大窗口大小显示绘图,但它仍然自动以默认大小保存绘图所以我想知道是否有可能或是否有任何解决方案可以自动以最大窗口大小保存 matplotlib 图?或者我没有办法做到这一点?
下图是我使用 matplotlib 中的保存图形按钮手动完成时的图形:
编辑: 如何使 pylab.savefig() 为“最大化”窗口保存图像而不是默认大小- 这里的大部分答案是指以全窗口形式显示图形,但在自动保存最大窗口时(它仍然保存它在正常大小)......你可以看到问题的作者在所有答案的评论部分提出了这个问题,但没有得到回答。
我正在使用cv2.cvtColor. 但是,当通过重新缩放然后转换np.float32将 dtype的结果图像转换为 dtype 的结果图像时,使用整数版本时得到的图像看起来有所不同。因此,我现在想知道我是否正确完成了转换,或者这实际上是由于转换过程中丢失了一些信息造成的?我试图了解发生了什么事,但无法弄清楚为什么。np.uint16np.uint8cv2.imshow
import cv2
import numpy as np
im = cv2.imread(r'C:\Users\310293649\Desktop\photo.png')
print(im.dtype)
print(im)
cv2.namedWindow('im', cv2.WINDOW_NORMAL)
cv2.imshow('im',im)
#Conversion from 8uint to float32 before cvtColor()
im = im.astype(np.float32) #Cast Image data type
im *= 1./255 #Scale value to float32 range 0-1
print(im.dtype) #Print to check data type
print(im) #Print pixel value
#Colour Space Conversion to HSV
im = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)
cv2.namedWindow('im1', cv2.WINDOW_NORMAL)
cv2.imshow('im1',im)
#Conversion from float32 to uint16
im *= 65535 #Scale …Run Code Online (Sandbox Code Playgroud) 我使用以下方法进行图像对齐.当我将warp_mode定义为cv2.MOTION_TRANSLATION时,以下代码可以正常工作.我在翻译移位的图像上得到了一些相当不错的结果....我尝试重复此代码并将warp_mode更改为EUCLIDEAN以解决具有旋转移位的图像.但是在第一张输出照片后执行需要很长时间.
import cv2
import numpy as np
path = "R:\\Temp\\xx\\ProcessedPhoto_in_PNG\\"
path1 = "R:\\Temp\\xx\\AlignedPhoto_in_PNG_EUCLIDEAN\\"
def alignment():
for i in range(1770,1869):
# Read the images to be aligned
im1 = cv2.imread(path + 'IMG_1770.png')
im2 = cv2.imread(path + 'IMG_%d.png' %(i))
# Convert images to grayscale
im1_gray = cv2.cvtColor(im1,cv2.COLOR_BGR2GRAY)
im2_gray = cv2.cvtColor(im2,cv2.COLOR_BGR2GRAY)
# Find size of image1
sz = im1.shape
# Define the motion model: can be TRANSLATION OR AFFINE OR HOMOGRAPHY
warp_mode = cv2.MOTION_EUCLIDEAN
# Define 2x3 or 3x3 matrices and initialize the …Run Code Online (Sandbox Code Playgroud) 如何循环遍历列表中的每个元素并将其作为 Excel 标题?如果有重复的问题,请告诉我。到目前为止我还没找到。
row=0
col=0
j = 0
title = ['No.', 'Hue', 'Saturation', 'Value',
'Lightness', 'AComponent', 'BComponent',
'Blue Channel', 'Green Channel', 'Red Channel']
for i in title[0:len(title)]:
worksheet.write(row + 1, col + j, 'title[%i]', bold)
j += 1
Run Code Online (Sandbox Code Playgroud)