質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

1回答

831閲覧

R言語の画像復元プログラムを解読したい

masa_0705

総合スコア9

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2019/11/02 07:48

編集2019/11/06 04:37

R言語の画像復元プログラムの解読を行っているのですが、文中の(1),(2)式のように、要素が[i,j]から[i,j,1,1]へと変化した理由を教えていただきたいです。行パターンと列パターンの2系統が必要になったからだと考えているのですが、どうでしょうか。

R

1library(survey) 2library(imager) 3 4n <- 256 #64 5n2 <- n*n 6img = load.image("House256.jpg") #( "insects.jpg" ) 7grayimg = grayscale(img) 8subi<-imsub(grayimg,x>=90) 9subi<-imsub(subi,x<=256) 10subi<-imsub(subi,y>=100) 11subi<-imsub(subi,y<=256) 12#subi<-imsub(grayimg,x>= 101) 13#subi<-imsub(subi,x<=64) 14#subi<-imsub(subi,y>=141) 15#subi<-imsub(subi,y<=64) 16 17subih<-subi 18subiv<-subi 19rsubih<-subi 20rsubiv<-subi 21rsubi<-subi 22#plot(subi) 23H <- hadamard(n) 24T <- matrix(0, nrow=n, ncol=n) 25suim <- matrix(0, nrow=n, ncol=n) 26suiv <- matrix(0, nrow=n, ncol=n) 27suih <- matrix(0, nrow=n, ncol=n) 28rsuiv <- matrix(0, nrow=n, ncol=n) 29rsuih <- matrix(0, nrow=n, ncol=n) 30rsui <- matrix(0, nrow=n, ncol=n) 31 32for (i in 1:n){ 33 for(j in 1:n){ 34 if(H[i,j]==0) {T[i,j]=-1} else {T[i,j]=1} 35 (1)suim[i,j]=subi[i,j,1,1] 36 } 37} 38 39suiv = T %*% suim / n 40 41suih = t( T %*% t(suim) ) / n 42 43 44# Fukugen 45 46rsuiv = T %*% suiv 47 48rsuih = t( T %*% t(suih) ) 49 50rsui = (rsuiv+rsuih)/2 51 52for (i in 1:n){ 53 for(j in 1:n){ 54 (2)rsubi[i,j,1,1]=rsui[i,j] 55 } 56} 57 58#rsubi=(rsubiv+rsubih)/2

もととなる論文を見て考えているのですが、確信が得られませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

回答依頼のお知らせから飛んできましたが,前回「私はR言語わかりません」って明言しているわけで…当然,コードが何書いてるのか良くわかりません.

字面の雰囲気的に,やってる内容はアダマール行列(の行)を直交基底として用いた基底変換ではないかと思います.
suivとsuihの2つを作って,復元時にこれら2つからの復元結果を足して2で割ることの意味はよくわかりません.

…というわけで,めっちゃあやふやですが,

  • (1) : Tにアダマール行列を作っているのではないでしょうか? Hの内容がどうなってるのかを調べてみると良いのではないでしょうか.
  • (2) : 画像subiの画素値をからなる行列submを作っているのでは?
  • (3) : 行列rsuiの要素値をrsubiの画素値に書込んでいるのでは?

と,想像します.

投稿2019/11/05 05:35

編集2019/11/05 05:37
fana

総合スコア11654

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masa_0705

2019/11/05 06:31

確認不足で本当にすみませんでした。それでも回答をくださり本当にありがとうございます。いただいた回答をもとに再度考えてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問