我一直在尝试在C ++上使用PGM文件,获取它们的底片等。 现在,当我开始旋转时,我对如何旋转矩阵有了一个粗略的伪代码,这是数值矩阵上的结果:
在纸上,这似乎是正确的。现在,当我使用相同的算法旋转图像时,它仅适用于正方形图像(即相同的高度和宽度):
但是在矩形图像上,它会产生这种结果:
代码如下:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(
menuItem("Modify",startExpanded = TRUE,
menuSubItem("Sub-item 1", tabName = "subitem1"),
menuSubItem("Sub-item 2", tabName = "subitem2")
)
)
),
dashboardBody(
tabItems(
tabItem("subitem1", "Sub-item 1 tab content"),
tabItem("subitem2", "Sub-item 2 tab content")
)
)
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
现在,我无法一辈子解码这里发生的事情以及什么使我的狗变成了小鹿:p
答案 0 :(得分:0)
当图像不是矩形时,数组的形状(宽度和高度)不同。
您需要将数组旋转到另一个数组中,以使索引有意义。
int sourceMatrix[100][200];
int destMatrix[200][100];
答案 1 :(得分:0)
您不能翻转或转置非方阵。在进行数学运算之前,添加额外的行或列以使矩阵成正方形,然后进行数学运算,然后将添加的列或行剥离回去以获得没有填充的原始图像。