小编Viz*_*zag的帖子

复制 .docx 并保留图像

我正在尝试将文档的元素从一个文档文件复制到另一个文档文件。文字部分很简单,图像是棘手的地方。附加图像来解释文档的结构:只有一些文本和 1 张图像。

在此输入图像描述

from docx import Document
import io
doc = Document('/Users/neha/Desktop/testing.docx')


new_doc = Document()

for elem in doc.element.body:
    new_doc.element.body.append(elem)
new_doc.save('/Users/neha/Desktop/out.docx')
Run Code Online (Sandbox Code Playgroud)

这让我了解了文档的整个结构,new_doc但图像仍然是空白的。下图:

在此输入图像描述

好处是我在正确的位置有空白图像,所以我想从前一个图像中获取字节级数据并将其插入到新文档中。这是我扩展上面代码的方法:

from docx import Document
import io
doc = Document('/Users/neha/Desktop/testing.docx')


new_doc = Document()

for elem in doc.element.body:
    new_doc.element.body.append(elem)

im = doc.inline_shapes[0]

blip = im._inline.graphic.graphicData.pic.blipFill.blip
rId = blip.embed


doc_part = doc.part
image_part = doc_part.related_parts[rId]
bytes = image_part._blob        #Here I get the byte level data for the image

im2 = new_doc.inline_shapes[0]
blip2 = im2._inline.graphic.graphicData.pic.blipFill.blip
rId2 = blip2.embed       
document_part2 …
Run Code Online (Sandbox Code Playgroud)

python docx

6
推荐指数
1
解决办法
3366
查看次数

在MATLAB中评估符号表达式

我试图在某些输入值处评估一个无限余弦系列的函数.

编辑:发布图像来描述无限系列的样子 在此输入图像描述

我编写了以下代码来在MATLAB中描述它.

function func = cosfun_hat(a,i)
    syms m x;

    assume(m,'integer');
    assumeAlso(m > 0);

    sum(x) = sqrt(1-a^2)*symsum(sqrt(2)*a^m*cos(i*sym(pi)*x*2^m+1),m,0,Inf);
    func(x) = sum(x);
end
Run Code Online (Sandbox Code Playgroud)

我想评估返回的'函数' func来获取某些输入范围的数值x_in = 0:0.001:1.

%Trying to evaluate func at x = 2
%In the command window I write
func = cosfun_hat(0.5,2);
func(2)
Run Code Online (Sandbox Code Playgroud)

返回符号表达式:

(2^(1/2)*3^(1/2)*sum((1/2)^m*(exp(- pi*exp(m*log(2))*4*i - i)/2 + exp(pi*exp(m*log(2))*4*i + i)/2), m == 0..Inf))/2
Run Code Online (Sandbox Code Playgroud)

我试着subs用来评估表达式:

%In the command window
syms y;
w(y) = func(y);
y = 2;
subs(w);
Run Code Online (Sandbox Code Playgroud)

但是这会返回相同的符号表达式.我是符号MATLAB的新手.

谢谢!

编辑根据@NickyMattsson的评论,我试过了

vpa(func(2)) …
Run Code Online (Sandbox Code Playgroud)

matlab

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

python-docx中的项目符号列表

我试图让它在工作python-docx

在此处输入图片说明

我可以使用的项目符号列表:

from docx import Document
doc = Document()
p = doc.add_paragraph()
p.style = 'List Bullet'

r = p.add_run()
r.add_text("Item 1")
# Something's gotta come here to get the Sub-Item 1
r = p.add_run()
r.add_text("Item 2")    
# Something's gotta come here to get the Sub-Item 2
Run Code Online (Sandbox Code Playgroud)

我认为,在中间添加另一段无济于事,因为从本质上讲,这意味着我将List Bullet使用与其父级相同的格式而不是我想要的类似于孩子的格式来制作另一段。另外,run在同一段中添加另一个也无济于事(我尝试过此操作,弄乱了整个过程..)。有办法吗?

python python-docx

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

图像处理:MATLAB中的算法耗时太长

我在MATLAB中处理两个512x512图像,域图像和范围图像.我想要完成的是以下内容:

  1. 将域和范围图像分成8x8像素块
  2. 对于域图像中的每个8x8块,我必须对其应用线性变换,并将4096个变换块中的每一个与4096个范围块中的每一个进行比较.
  3. 在变换块和范围图像块之间的每种情况下计算错误并找到最小误差.
  4. 最后,我将为每个8x8范围块,错误最小的8x8域块的id(范围块和转换的域块之间的错误)

为此,我编写了以下代码:

RangeImagecolor = imread('input.png'); %input is 512x512
DomainImagecolor = imread('input.png'); %Range and Domain images are identical

RangeImagetemp = rgb2gray(RangeImagecolor);
DomainImagetemp = rgb2gray(DomainImagecolor);

RangeImage = im2double(RangeImagetemp);

DomainImage = im2double(DomainImagetemp);
%For the (k,l)th 8x8 range image block
for k = 1:64
    for l = 1:64
        minerror = 9999;
        min_i = 0;
        min_j = 0;

        for i = 1:64
            for j = 1:64

                 %here I compute for the (i,j)th domain block, the transformed domain block stored in D_trans …
Run Code Online (Sandbox Code Playgroud)

performance matlab image image-processing

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