小编Sac*_*reD的帖子

将标题添加到suptitle下面的子图列

是否有一种简单的方法可以添加到我的原始代码中,以便我可以在我的子图的两列中添加另一个标题?例如,如下图所示的粉红色区域中的某个地方.

有人推荐我看看这篇文章的解决方案,但我想看看是否有一个方法没有使用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)

python matplotlib

5
推荐指数
1
解决办法
999
查看次数

如何以最大窗口形式而不是默认大小保存 matplotlib 图?

任何人都知道我应该如何解决这个问题?我知道有保存按钮,我可以手动完成,但我正在绘制 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)

下面是我从上面的命令 plt.show() 之后得到的, 我的图的完整 Windows 模式

我得到的 plt.savefig 结果: 在此处输入图片说明

如您所见,代码设法以最大窗口大小显示绘图,但它仍然自动以默认大小保存绘图所以我想知道是否有可能或是否有任何解决方案可以自动以最大窗口大小保存 matplotlib 图?或者我没有办法做到这一点?

下图是我使用 matplotlib 中的保存图形按钮手动完成时的图形:

在此处输入图片说明

编辑: 如何使 pylab.savefig() 为“最大化”窗口保存图像而不是默认大小- 这里的大部分答案是指以全窗口形式显示图形,但在自动保存最大窗口时(它仍然保存它在正常大小)......你可以看到问题的作者在所有答案的评论部分提出了这个问题,但没有得到回答。

python matplotlib

5
推荐指数
1
解决办法
1532
查看次数

cvtColor() 转换为 HSV 色彩空间后的 Numpy 8/16/32 位图像数据类型

我正在使用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)

python opencv numpy colors image-processing

4
推荐指数
1
解决办法
2443
查看次数

cv2.MOTION_EUCLIDEAN用于ECC图像对齐方法中的warp_mode

我使用以下方法进行图像对齐.当我将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)

python opencv image-processing

3
推荐指数
1
解决办法
2615
查看次数

在python中将标题写入excel文件

如何循环遍历列表中的每个元素并将其作为 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)

我想做一些像红色文字的事情 在此输入图像描述

python excel xlsxwriter

2
推荐指数
1
解决办法
2万
查看次数